如何在Dockerfile的临时容器中创建空文件?
显然,touch不可用:
FROM scratch
RUN ["touch", ".emptyfile"]
Run Code Online (Sandbox Code Playgroud)
结果:
container_linux.go:265: starting container process caused "exec: \"touch\": executable file not found in $PATH"
Run Code Online (Sandbox Code Playgroud)
不幸的是,/dev/null它也不可用:
FROM scratch
COPY /dev/null .emptyfile
Run Code Online (Sandbox Code Playgroud)
结果:
COPY failed: stat /var/lib/docker/tmp/docker-builder872453691/dev/null: no such file or directory
Run Code Online (Sandbox Code Playgroud)
我可以在Docker主机构建上下文中创建一个空文件,然后创建一个空文件COPY,但这很容易。
有任何想法吗?
没有从头开始运行的命令。您从头开始拥有的唯一选择是COPY和ADD。而且,您只能从上下文中复制或添加文件(除非您ADD要从远程URL(我不建议这样做))。因此,您只能在上下文中创建一个空文件并将其复制。
And then docker introduced multi stage builds, which let's you use another build as your context. So you can make an empty file in one stage and copy it to the other.
FROM busybox AS build-env
RUN touch /empty
FROM scratch
COPY --from=build-env /empty /.emptyfile
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4077 次 |
| 最近记录: |