我最近开始使用 Buildkit 来隐藏一些环境变量,它在 gha 的 prod 中效果很好!
我的 Dockerfile 现在是这样的:
# syntax=docker/dockerfile:1.2
...
RUN --mount=type=secret,id=my_secret,uid=1000 \
MY_SECRET=$(cat /run/secrets/my_secret) \
&& export MY_SECRET
Run Code Online (Sandbox Code Playgroud)
而我的正面是这样的:
DOCKER_BUILDKIT=1 docker build \
--secret id=my_secret,env="MY_SECRET"
Run Code Online (Sandbox Code Playgroud)
当我在我的 Github 操作上运行它时,它运行得很好。
但现在,问题是当我尝试在本地构建它时。执行时docker-compose build失败。当然,因为我没有传递任何秘密,所以我的后端(Dockerfile)将无法从run/secrets/.
到目前为止,我尝试使用以下方法完成本地构建docker-compose build:
1. 使用 Docker 秘密:
我基本上尝试这样做:
$ docker swarm init
$ echo "my_secret_value" docker secret create my_secret -
Run Code Online (Sandbox Code Playgroud)
我认为保存秘密可以解决问题,但没有成功。我仍然收到相同的错误消息:
cat:无法打开“/run/secrets/my_secret”:没有这样的文件或目录
version: '3'
services:
app:
build:
context: "."
args:
- "MY_SECRET"
secrets:
- my_secret
secrets: …Run Code Online (Sandbox Code Playgroud)