localstack / localstack/serverless-localstack

Specify profile for docker compose in config

Open
#265 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement status: backlog
Dominant language
JavaScript
Stars
542
Forks
92
PR merge metrics
No merged PRs in 30d

Description

Problem

I have multiple profiles configured in my docker-compose.yml file. I would like to only run the containers tagged with a particular profile with via this plugin's docker compose up command.

Example

Example compose file:

# docker-compose.yml
services:
  localstack:
    profiles:
      - local
    container_name: '${LOCALSTACK_DOCKER_NAME:-localstack-main}'
    image: localstack/localstack
    ports:
      - 4566:4566 # LocalStack Gateway
      - 4510-4559:4510-4559 # external services port range
    environment:
      # LocalStack configuration: https://docs.localstack.cloud/references/configuration/
      - DEBUG=${DEBUG:-0}
    volumes:
      - '${LOCALSTACK_VOLUME_DIR:-./volume}:/var/lib/localstack'
      - '/var/run/docker.sock:/var/run/docker.sock'

  redis-local:
    profiles:
      - local
    image: redis:7.2.4-alpine
    ports:
      - 6379:6379
    command: redis-server --logLevel notice --requirepass pass

  redis-test:
    profiles:
      - test
    image: redis:7.2.4-alpine
    ports:
      - 6379:6379
    command: redis-server --logLevel notice --requirepass pass

And the compose up command:

docker compose --profile local up -f docker-compose.yml

Read more about compose profiles here.

When specifying the local profile it shouldn't create the redis-test container.

Suggested solution

Can add an optional parameter to config.docker to specify the profile(s) to be run in the docker compose up command.

e.g.

custom:
  localstack:
    docker:
      profiles:
       - local

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing how the plugin reads custom config.docker and constructs the docker compose up command. Add support for an optional profile or profiles value, then verify with a compose file containing local and test profiles that only the selected profile starts.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, docker-compose, javascript
Domain
devops
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
50/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.