Dav*_*ave 6 docker docker-compose docker-secrets
我有一个Dockerfile
使用秘密的,我可以使用 成功构建图像docker build
。但是,当我尝试使用构建相同的图像时,docker-compose build
出现错误:
ERROR: Dockerfile parse error line 4: Unknown flag: mount
Run Code Online (Sandbox Code Playgroud)
这种情况发生在 Ubuntu 20.04LTS(Docker 版本 18.09.6,内部版本 481bc77,docker-compose 版本 1.20.0-rc2,内部版本 8c4af54)上。
在 RHEL 7.9(Docker 版本 20.10.7 版本 f0df350、docker-compose 版本 1.29.2、版本 5becea4c)上,会出现不同的错误:
[2/2] RUN --mount=type=secret,id=the_secret cat /run/secrets/the_secret:
#8 0.466 cat: /run/secrets/the_secret: No such file or directory
Run Code Online (Sandbox Code Playgroud)
如何使用 docker-compose 构建涉及机密的镜像?
使用 docker 构建(有效)
#!/bin/bash
export COMPOSE_DOCKER_CLI_BUILD=1
export DOCKER_BUILDKIT=1
echo "I have a secret" > secret.txt
docker build --secret id=the_secret,src=./secret.txt .
Run Code Online (Sandbox Code Playgroud)
使用 docker-compose 构建(失败)
export COMPOSE_DOCKER_CLI_BUILD=1
export DOCKER_BUILDKIT=1
echo "I have a secret" > secret.txt
docker-compose build --no-cache test
Run Code Online (Sandbox Code Playgroud)
Dockerfile
# syntax=docker/dockerfile:1.2
FROM python:3.8
RUN --mount=type=secret,id=the_secret cat /run/secrets/the_secret
Run Code Online (Sandbox Code Playgroud)
docker-compose.yml
version: "3.6"
services:
test:
build: .
secrets:
- the_secret
secrets:
the_secret:
file: secret.txt
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2434 次 |
最近记录: |