我正在创建一个容器映像,其中安装了两个大型(10GB)应用程序。我目前正在使用:
COPY <installer.file> <dest>
RUN <install application> \
&& rm <application installer file>
Run Code Online (Sandbox Code Playgroud)
然而,我的印象是,如果我能够做到以下几点:
RUN cp <installer files from host> \
&& <install application> \
&& rm <application installer file>
Run Code Online (Sandbox Code Playgroud)
我的图像文件会小得多。(澄清一下,这将删除其中包含安装程序文件的层。)
我知道在构建过程结束之前不会安装卷 - 还有其他方法可以做到这一点吗?
您可以使用多阶段构建:
FROM some_image as build
COPY <installer.file> <dest>
RUN <install application> \
&& rm <application installer file>
FROM some_image
COPY --from=build / /
Run Code Online (Sandbox Code Playgroud)
这样,您的最终映像仅包含已安装的应用程序,而不包含中间层。
在最后一行中,您还可以仅复制实际安装应用程序的文件夹。
| 归档时间: |
|
| 查看次数: |
2431 次 |
| 最近记录: |