将 Github 秘密传递给 docker github 操作

时间:2021-07-27 15:56:58

标签: docker github github-actions github-secret docker-aws

嗨,我敬爱的开发者!

今天,我在尝试将 GitHub 机密传输到 docker GitHub 操作以在容器中使用此变量时遇到了麻烦。我已经为项目定义了密钥 what_a_secret 的秘密 CHUT

这是我目前拥有的:

name: Continious Delivery
on: [push]
jobs:
  myjob:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2
        with:
          fetch-depth: 0
      - name: Docker Run Action
        uses: addnab/docker-run-action@v3
        env:
          CHUT: ${{ secrets.CHUT }}
        with:
          image: amazon/aws-glue-libs:glue_libs_1.0.0_image_01
          options:
            --env CHUT=$CHUT
            -v ${{ github.workspace }}:/workspace
          run:
            echo CHUT=$CHUT

这只是打印 CHUT=$CHUT 而不是 CHUT=what_a_secret

我也尝试过这样做:

            --env CHUT=${{ secrets.CHUT }}

还有这个:

          run:
            echo CHUT=${{ secrets.CHUT }}

但是 lasts 解决方案根本没有返回任何东西。

热烈欢迎您的帮助

编辑:文档“Configure GitHub Actions”无法将环境变量传递给容器。

1 个答案:

答案 0 :(得分:0)

最后的答案是:我让我的代码更干净并做到了:

name: Continious Delivery
on: [push]
jobs:
  myjob:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2
        with:
          fetch-depth: 0
      - name: Docker Run Action
        uses: addnab/docker-run-action@v3
        with:
          image: amazon/aws-glue-libs:glue_libs_1.0.0_image_01
          options:
            --e CHUT=${{ secrets.CHUT }}
            -v ${{ github.workspace }}:/workspace
          run:
            echo "CHUT=$CHUT"

输出是 CHUT=*** 因为 Github 足够聪明,不会在终端中打印秘密。但是 docker 正确读取了秘密。