如何将机密作为环境变量传递到 Docker Github Action 中?

Tza*_*ach 5 github docker dockerfile github-actions

在我的工作流程中,我使用以下步骤运行自定义操作:

- name: Run action
  uses: ./backend
  env:
    MY_SECRET: ${{ secrets.MY_SECRET }}
Run Code Online (Sandbox Code Playgroud)

这是action.yml

name: "Backend"
on: [pull_request]
runs:
  using: 'docker'
  image: "Dockerfile"
Run Code Online (Sandbox Code Playgroud)

由于某种原因,MY_SECRET我的Dockerfile. 我尝试在 shell 脚本文件和命令中访问它RUN

RUN echo "MY_SECRET: $MY_SECRET"
Run Code Online (Sandbox Code Playgroud)

但它总是空的。

我尝试了存储库级别和组织级别的机密,但环境变量始终为空。

知道为什么吗?

Mar*_*oun 3

您不能$MY_SECRET在容器内使用。相反,您应该通过--build-arg标志传递参数。

我认为你应该这样做:

steps:
  - run: docker build --build-arg MY_SECRET=$MY_SECRET .
Run Code Online (Sandbox Code Playgroud)

然后您就可以MY_SECRET在构建阶段进行访问。

如果您使用操作而不是手动进行构建,则应该了解如何传递构建参数。