如何从Azure Pipeline设置AWS EC2中的环境变量



我正在尝试使用AzureDevops管道在AWS EC2上部署Django。我有一个ssh任务来运行docker容器,我想设置环境变量。我尝试了各种命令,但都没有成功。

任务如下:

- task: SSH@0
displayName: Restart Docker Container
inputs:
sshEndpoint: "TMC AWS EC2 Stage Authentication"
runOptions: "inline"
inline: |
echo $(DEBUG)
echo $(export DEBUG=$(DEBUG))
...
sudo docker stop $(containerName)
sudo docker rm $(containerName)
sudo docker run -d -p 80:8000 --name $(containerName) $(AWS_ECR_REPOSITORY_NAME)/${{ parameters.imageName }}:${{ parameters.environment }}-latest

根据文档,如果你使用'script'作为runnooptions,你可以传递参数。

- task: SSH@0
inputs:
sshEndpoint: 'TMC AWS EC2 Stage Authentication'
runOptions: 'script'
scriptPath: 'myscript.sh'
args: '$(containerName)'
readyTimeout: '20000'

我已经解决了将环境变量文件传递给docker运行命令的问题。

- task: SSH@0
displayName: Restart Docker Container
inputs:
sshEndpoint: "TMC AWS EC2 Stage Authentication"
runOptions: "inline"
inline: |
touch .env
echo SECRET_KEY=$(SECRET_KEY) >> .env
echo DEBUG=$(DEBUG) >> .env
...
sudo docker stop $(containerName)
sudo docker rm $(containerName)
sudo docker run -d -p 80:8000 --env-file=.env --name $(containerName) $(AWS_ECR_REPOSITORY_NAME)/${{ parameters.imageName }}:${{ parameters.environment }}-latest

最新更新