Перезапись dockercompose.yml с помощью docker-compose.prod.yml - PullRequest
0 голосов
/ 17 марта 2019

Я надеюсь, что это легко и поможет еще нескольким людям, так как я не мог найти прямой ответ на этот вопрос.

Я следую этому примеру: https://docs.docker.com/compose/extends/#different-environments

У меня есть два файла:

Docker compose для разработки

version: '3.7'

services:
  restapi:
    build: "./something/"
  db:
    image: postgres:10.5-alpine
volumes:
  postgres_data:
  static_volume:

Docker compose для разработки (docker.compose.prod.yml):

version: '3.7'

services:
  restapi:
    image: registry.gitlab.com/...
    restart: always
  db:
    restart: always

В документации докера говорится:

В случае сборки и образа, при использовании версии 1 формата файла Compose, используется один параметрв локальной службе заставляет Compose отказаться от другой опции, если она была определена в исходной службе.

Тем не менее, когда я пытаюсь запустить docker-compose на моем сервере, у меня происходит сбой, потому что путь сборкине существует, что означает, что запись не была перезаписана. В чем проблема?

Сбой этой команды:

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

С:

build path /.../.../.../.../... either does not exist, is not accessible, or is not a valid URL.

1 Ответ

1 голос
/ 17 марта 2019

Вы можете указать несколько docker-compose конфигурационных файлов, которые будут переопределять друг друга справа налево.

В следующем примере prod.yml будет переопределять dev.yml.

docker-compose -f /path/to/docker-compose-a.yml -f /path/to/docker-compose-b.yml up.

ТАК, чтобы решить вашу проблему, я бы сделал следующее.

создадим 3 .yml файла,

  • common - будет основой для обеих сред.
  • prod - будет только prod
  • dev - будет только dev (будет содержать путь сборки)

затем для запуска среды разработки: (common.yml + dev.yml)

docker-compose -f /path/to/docker-compose-common.yml -f /path/to/docker-compose-dev.yml up.

и производство (common.yml + prod.yml):

docker-compose -f /path/to/docker-compose-common.yml -f /path/to/docker-compose-prod.yml up.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...