我有一个大的tar /可执行文件(超过30GB)COPY/ADD
,但这仅用于安装。一旦安装了应用程序,我就不再需要它了。
我能怎么做?我正在尝试使用它,但:
每次运行构建时,都需要花费几分钟来定义构建上下文。
如果要使用创建焦油docker save
,我想共享此图像,是否包含最终版本或每个图层?
我找到了一些可以使用的解决方案,RUN wget tar ... && rm tar
但我不想为此创建Web服务器。
为什么在构建过程中无法挂载卷?这将非常有用。
使用Docker的多阶段构建。这种机制使您可以丢弃中间的伪像,从而获得轻巧的图像。
例:
FROM alpine:latest as build
# copy large file
# build
FROM alpine:latest as output
# copy necessary files built in the previous stage
COPY --from=build app /app
build
除非您明确指定,否则舞台中构建的所有内容都不会包含在最终图像中COPY
。
文件:https://docs.docker.com/develop/develop-images/multistage-build/
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句