Переменная окружения не видна в docker-compose.yml - PullRequest
0 голосов
/ 06 июня 2019

Я использую следующие команды для создания среды с docker-compose.sh:

curl -L --fail https://github.com/docker/compose/releases/download/1.23.0/run.sh -o docker-compose.sh
chmod +x docker-compose.sh
export DOCKER_CONTAINER_POSTFIX="test_name"

./docker-compose.sh  -p $PROJECT_NAME  build --compress
./docker-compose.sh -p $PROJECT_NAME  up --exit-code-from runner runner
./docker-compose.sh -p $PROJECT_NAME down

Со следующим docker-compose.yml:

version: '2.3'

services:
  base:
    image: base
    build:
      context: .
      dockerfile: Dockerfile

  pytest_worker_01:
    extends:
      service: base
    container_name: "worker_${DOCKER_CONTAINER_POSTFIX}"

  runner:
    extends:
      service: base
    container_name: "runner_${DOCKER_CONTAINER_POSTFIX}"
    depends_on:
      - worker
    networks:
      - default
    command: ["cmd"]

Проблема, с которой DOCKER_CONTAINER_POSTFIX не являетсянедоступно при создании и запуске новых сервисов.Кроме того, я пытался использовать такие команды, как:

DOCKER_CONTAINER_POSTFIX="test_name" ./docker-compose.sh  -p $PROJECT_NAME  build --compress

1 Ответ

0 голосов
/ 06 июня 2019

Скачанный сценарий docker-compose.sh выполняет собственную процедуру, если вы присмотритесь к нему поближе, вы увидите, что он выполняет команду exec docker run ... ниже:

exec docker run --rm $DOCKER_RUN_OPTIONS $DOCKER_ADDR $COMPOSE_OPTIONS $VOLUMES -w "$(pwd)" $IMAGE "$@"

Ключ здесь передает переменную COMPOSE_OPTIONS, которая является правильной точкой ввода таких вещей, как переменные env. Замена экспорта DOCKER_CONTAINER_POSTFIX на другой решит вашу проблему:

COMPOSE_OPTIONS = "-e DOCKER_CONTAINER_POSTFIX=test_name"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...