如何将机密信息作为环境变量传递给 Docker Github Action?

4
在我的工作流程中,我使用以下步骤运行自定义操作:
- name: Run action
  uses: ./backend
  env:
    MY_SECRET: ${{ secrets.MY_SECRET }}

下面是 action.yml 文件:

name: "Backend"
on: [pull_request]
runs:
  using: 'docker'
  image: "Dockerfile"

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

RUN echo "MY_SECRET: $MY_SECRET"

但它总是空的。

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

有什么想法吗?

1个回答

2

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

我认为你应该这样做:

steps:
  - run: docker build --build-arg MY_SECRET=$MY_SECRET .

然后你就可以在构建阶段访问MY_SECRET了。

如果你是使用操作而非手动构建,则应该找出如何传递构建参数。


谢谢!在文档中找到以下内容:要在Docker容器操作中访问环境变量,必须使用操作元数据文件中的args关键字传递输入。有关Docker容器操作的操作元数据文件的更多信息,请参见“创建Docker容器操作”。 - Tzach
@Tzach 很好。所以我相信这就可以了。 - Maroun

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接