我正在开始使用 CI/CD 和 Docker,我想在我的工作流程文件中将连接字符串传递给 docker。
deploy:
runs-on: ubuntu-latest
needs: publish
steps:
- name: deploy to server
uses: appleboy/ssh-action@master
env:
CONN_STRING: ${{ secrets.CONN_STRING }}
with:
host: ${{ secrets.SECRET_IP }}
username: ${{ secrets.SERVER_USERNAME }}
key: ${{ secrets.SERVER_KEY }}
port: 22
script: docker stop *** && docker rm **** && docker pull **** && docker run --env CONN_STRING=$CONN_STRING -d --name ******
如你所见,我创建了一个名为“CONN_STRING”的环境,它从我的 github 秘密中获取连接字符串。之后我想通过“CONN_STRING=$CONN_STRING”将其传递到dockerscript中。然而,自从我添加了这个之后,我的泊坞窗一直崩溃。有人知道我做错了什么吗? **** 只是我的项目的名称,我想保密。
您可以在
FROM
步骤之后添加arg:
ARG CONN_STRING
ENV connection_string=$CONN_STRING
然后将其传递给 docker 构建命令
'--build-arg CONN_STRING=$CONN_STRING'
然后在 docker 文件中您可以将连接字符串引用为这样
${connection_string}
原来你可以跳过 yml 中的环境变量并使用
CONN_STRING=${{ secrets.CONN_STRING }}