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

相关内容