[英]Can't access Azure pipeline variables in my Docker stack Yaml file
我想從 Azure 管道部署一個 Docker 堆棧。 我設置了一些變量,我在 Docker 堆棧文件中調用這些變量。 但是,docker 堆棧文件中沒有讀取我的環境變量。 我的問題:有什么解釋為什么我無法讀取 yaml 文件中的環境變量?
以下是我所有的變量
這是我的 docker 堆棧配置
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}
從 azure 管道 yaml 文件中,我可以讀取環境變量...
我不明白的是,在另一個項目中,我正在做完全相同的事情,並且一切正常。
編輯:這是我的 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
其他項目中yaml流水線的Agent Specification可以查看。 他們可能會使用不同的代理。
我創建了一個測試管道,發現 docker 堆棧文件中的環境變量無法在 mac 或 ubuntu 代理中被替換。 但它似乎在 windows 代理中工作。
如果您使用 mac 或 ubuntu 代理來運行您的管道。 您可能需要在dockerComposeFileArgs
字段中使用定義環境變量。 見下文:
- task: DockerCompose@0
displayName: 'Build services'
inputs:
containerregistrytype: 'Container Registry'
dockerRegistryEndpoint: Dockerhost
dockerComposeFileArgs: |
MAIL_USERNAME=$(MAIL_USERNAME)
MAIL_PASSWORD=$(MAIL_PASSWORD)
APP_ADMINS=$(APP_ADMINS)
SQLALCHEMY_DATABASE_URI=$(SQLALCHEMY_DATABASE_URI)
action: 'Build services'
更新:
對於 bash 任務,您可以嘗試將 env 字段用於 map 變量。 見下文:
- bash: |
sudo docker stack deploy ...
displayName: 'Bash Script'
enabled: false
env:
MAIL_USERNAME: $(MAIL_USERNAME)
MAIL_PASSWORD: $(MAIL_PASSWORD)
APP_ADMINS: $(APP_ADMINS)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.