Я хочу развернуть стек Docker из конвейеров Azure. Я установил несколько переменных и вызываю эти переменные в файле стека Docker. Однако ни одна из моих переменных среды не читается в файле стека докеров. Мой вопрос: есть ли какие-либо объяснения, почему я не могу прочитать переменные среды в файле yaml?
Ниже все мои переменные
И вот моя конфигурация стека докеров
version: "3.1"
services:
postgres:
image: "postgres"
volumes:
- /home/db-postgres:/data/db
environment:
POSTGRES_PASSWORD: ${POSTGRESPASSWORD}
POSTGRES_DB: ${POSTGRESDB}
main:
command: "flask run --host=127.0.0.1"
image: "personal-image"
ports:
- 5000:5000
environment:
SECRET_KEY: ${FLASK_SERIALIZER_SECRET}
JWT_SECRET_KEY: ${FLASK_JWT_SECRET}
FLASK_APP: app.py
MAIL_USERNAME: ${MAIL_USERNAME}
MAIL_PASSWORD: ${MAIL_PASSWORD}
APP_ADMINS: ${APP_ADMINS}
SQLALCHEMY_DATABASE_URI: ${SQLALCHEMY_DATABASE_URI}
Однако из yaml-файла azure pipeline я могу прочитать переменные среды ...
Я не понимаю, что в другом проекте я делаю то же самое, и все работает нормально.
Изменить: вот мой скрипт azure-pipelines.yml. Агент представляет собой автономный агент EC2 Linux:
steps:
- bash: |
echo $(DOCKERREGISTRY_PASSWORD) | docker login --username $(DOCKERREGISTRY_USER) --password-stdin
displayName: log in to Docker Registry
- bash: |
sudo service docker start
sudo docker stack deploy --with-registry-auth --prune --compose-file stack.staging.yml my_cluster_name
displayName: Deploy Docker Containers
- bash: |
sudo docker system prune --volumes -f
displayName: Clean memory
- bash: |
docker logout
sudo service docker stop
displayName: logout of Docker Registry