gpt4 book ai didi

docker - 如何在临时容器中创建一个空文件?

转载 作者:行者123 更新时间:2023-12-04 18:57:45 25 4
gpt4 key购买 nike

如何在 Dockerfile 的临时容器中创建一个空文件?

尝试 1

显然,touch不可用:

FROM scratch
RUN ["touch", ".emptyfile"]

结果:
container_linux.go:265: starting container process caused "exec: \"touch\": executable file not found in $PATH"

尝试 2

不幸的是, /dev/null也不可用:
FROM scratch
COPY /dev/null .emptyfile

结果:
COPY failed: stat /var/lib/docker/tmp/docker-builder872453691/dev/null: no such file or directory

我可以在 Docker 主机构建上下文中创建一个空文件,然后 COPY它,但你知道,那太容易了。

有任何想法吗?

最佳答案

从头开始没有要运行的命令。您从头开始的唯一选择是 COPYADD .而且您只能从上下文中复制或添加文件(除非您想从我不推荐的远程 url 中 ADD)。因此,您需要在上下文中创建一个空文件并复制它。

然后 docker 引入了多阶段构建,让您可以使用另一个构建作为您的上下文。因此,您可以在一个阶段创建一个空文件并将其复制到另一个阶段。

FROM busybox AS build-env
RUN touch /empty

FROM scratch
COPY --from=build-env /empty /.emptyfile

关于docker - 如何在临时容器中创建一个空文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48122371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com