如何将 Github Secret 作为环境变量传递给 Docker?

问题描述 投票:0回答:2

我正在开始使用 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中。然而,自从我添加了这个之后,我的泊坞窗一直崩溃。有人知道我做错了什么吗? **** 只是我的项目的名称,我想保密。

docker github workflow github-actions cicd
2个回答
5
投票

您可以在

FROM
步骤之后添加arg:

ARG CONN_STRING
ENV connection_string=$CONN_STRING

然后将其传递给 docker 构建命令

'--build-arg CONN_STRING=$CONN_STRING'

然后在 docker 文件中您可以将连接字符串引用为这样

${connection_string}


3
投票

原来你可以跳过 yml 中的环境变量并使用

CONN_STRING=${{ secrets.CONN_STRING }}
© www.soinside.com 2019 - 2024. All rights reserved.