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

Jas*_*yah 6 workflow github docker github-actions cicd

我正在开始使用 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 ******
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我创建了一个名为“CONN_STRING”的环境,它从我的 github 秘密中获取连接字符串。之后我想通过“CONN_STRING=$CONN_STRING”将其传递到dockerscript中。然而,自从我添加了这个之后,我的泊坞窗一直崩溃。有人知道我做错了什么吗?**** 只是我的项目的名称,我想保密。

Krz*_*tof 5

您可以在步骤后添加 arg FROM

ARG CONN_STRING
ENV connection_string=$CONN_STRING
Run Code Online (Sandbox Code Playgroud)

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

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


Jas*_*yah 3

结果你可以跳过 yml 中的环境变量并使用

CONN_STRING=${{ secrets.CONN_STRING }}
Run Code Online (Sandbox Code Playgroud)

  • 这应该写在哪里`CONN_STRING=${{secrets.CONN_STRING}}`(在哪个文件中)? (8认同)