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

How to pass a Github Secret as Environment Variable to Docker?

我开始使用 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”将它传递到 docker 脚本中。但是,自从我添加了这个之后,我的 docker 一直在崩溃。任何人都知道我做错了什么? **** 只是我的项目名称,我想保密。

您可以在 FROM 步骤后添加 arg:

ARG CONN_STRING
ENV connection_string=$CONN_STRING

然后将其传递给 docker 构建命令 '--build-arg CONN_STRING=$CONN_STRING'

稍后在 dcoker 文件中,您可以将连接字符串引用为 ${connection_string}

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

CONN_STRING=${{ secrets.CONN_STRING }}