Docker - docker-composeに変数を提供する

Docker - docker-composeに変数を提供する

docker-compose.ymlがあります。

php-fpm:
    build: ./php
    container_name: php-fpm-symfony
    links:
        - db
    ports:
        - 9000:9000
        - 8000:8000
    working_dir: /var/www/html/
    volumes:
        - ../:/var/www/html
    volumes_from:
        - data
    tty: true
    env_file:
        - ./docker.env
    entrypoint: /entrypoint.sh

実行時にdocker-compose up -dパラメータ(コンテナ名など)を渡してコンテナ名を動的に指定したいと思います。

docker-composeを使用して実装できますか?

たとえば、

docker-compose up -d "-variable=symfony" // ???

そして:

php-fpm:
    build: ./php
    container_name: php-fpm-$(variable)

このように動作すること...

答え1

YAMLで可能なすべての選択肢を定義し、YAML引用符を使用して詳細を減らすことができます。

default-container: &default-container
    build: ./php
    container_name: default
    links:
        - db
    ports:
        - 9000:9000
        - 8000:8000
    working_dir: /var/www/html/
    volumes:
        - ../:/var/www/html
    volumes_from:
        - data
    tty: true
    env_file:
        - ./docker.env
    entrypoint: /entrypoint.sh

php-fpm-symfony:
    <<: *default-container
    container_name: php-fpm-symfony

php-fpm-laravel:
    <<: *default-container
    container_name: php-fpm-laravel

引用:

https://en.wikipedia.org/wiki/YAML#References

https://stackoverflow.com/questions/4150782/using-yaml-with-variables

関連情報