Azure build pipe, docker compose - установить переменную среды - PullRequest
1 голос
/ 13 мая 2019

У меня есть конвейер сборки, который запускает образ докера с какой-то Java-программой, которая запускается с использованием maven.

enter image description here

Выбранный шаг конвейера Запускать автоматизированные тесты запускает docker-compose, который запускает мою java-программу внутри docker, как вы можете видеть, я также установил системное значение среды FEATURES_LIST с некоторым тестовым значением, теперь внутри моей java-программы я пытался вернуть значение вродеЯ обычно делаю для переменных окружения:

System.getenv("FEATURES_LIST");

Но он никогда не находит его. Если, с другой стороны, я указываю переменную окружения, внутри моего составного файла docker он находит ее (какая-то другая переменная env установлена ​​внизу)файла компоновки Docker, см. ниже)

version: '3.4'

services:

  # SELENIUM GRID
  selenium-hub:
    image: selenium/hub
    ports:
      - 4444:4444

  chrome:
    image: selenium/node-chrome-debug
    ports:
      - 5900:5900
    environment:
      - HUB_PORT_4444_TCP_ADDR=selenium-hub
      - HUB_PORT_4444_TCP_PORT=4444
    depends_on:
      - selenium-hub

  # AUTOMATION PROJECT
  image_name:
    image: imagepathhere:latest
    volumes:
      - ./:/usr/src/app/
    network_mode: "host"
    depends_on:
      - chrome
    environment:
      - TARGET_TEST_ENV=uat

Проблема в том, что это действительно облегчит мою жизнь, если бы я мог указать переменную окружения внутри конвейера сборки Azure, есть ли что-то, что я делаю неправильно?

1 Ответ

1 голос
/ 14 мая 2019

«Переменные среды» в задаче Docker Compose не внедряют переменные в контейнеры, поэтому приложение Java не может их прочитать, но они будут доступны в агенте во время процесса.

Переменные предназначены для использования в docker-compose.yml следующим образом: ${varaibleName}.

Таким образом, вы можете определить в переменной задачи Docker Compose: FEATURE_LIST=blabla и в docker-compose.yml вставить переменную в контейнер:

image:ubuntu:latest
environment:
  - FEATURE_LIST=${FEATURE_LIST}

Таким образом вы можете указывать переменные среды внутри конвейера сборки Azure (но вы также должны определять их в docker-compose.yml).

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