Как переименовать сервис в docker compose override? - PullRequest
0 голосов
/ 21 апреля 2020

Допустим, у меня есть пара сервисов web1 и web2, и я могу раскрутить их в prod или dev

docker-compose -f docker-compose.yml -f docker-compose.dev.yml up -d
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d

Теперь, скажем, я делаю то же самое для конфигурации тестирования. Если мой тестовый yml менял только имя контейнера, например,

version: '3.6'
services:
  web1:
    container_name: web1_test
  web2:
    container_name: web2_test

, и у меня уже были запущены мои веб-сервисы, то это воссоздало бы сервисы, фактически заменяя их контейнеры новыми, содержащими новый конфиг. (в этом случае новое имя). Но я бы предпочел не делать этого, было бы неплохо просто вращать их вверх и вниз, не мешая оригиналам.

Лучше было бы

version: '3.6'
services:
  web1:
    service_name: web1_test
  web2:
    service_name: web2_test

тогда я мог бы начать тестируйте версии и останавливайте их, не трогая оригиналы.

docker-compose -f docker-compose.yml -f docker-compose.test.yml up -d web1_test web2_test

Можно ли оставить исходные сервисы и запустить несколько новых тестовых экземпляров с простым наложением конфигурации?


Примечание: в настоящее время я использую docker-compose run для удовлетворения своих потребностей. На практике я также изменяю переменные env и порты, например:

docker-compose -f Docker/docker-compose.yml -f Docker/docker-compose.dev.yml run -d --name web1_test -e VAR1=web1_test_var -p 5001:5000 web1

, поэтому я уже знаю, «как это сделать», я ищу больше, я пропускаю лучший способ выполнения sh то же самое? Было бы неплохо иметь порт, env и name в конфиге, не так ли?

1 Ответ

1 голос
/ 21 апреля 2020

Вместо использования container_name для службы вы можете использовать разные имена проектов для одного и того же docker-compose.yml, используя флаг: -p, --project-name NAME.

docker-compose -f docker-compose.yml -p foo up -d
foo_web_1
foo_web_2

docker-compose -f docker-compose.yml -p bar up -d
bar_web_1
bar_web_2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...