我必须创建一个docker文件,将MyApp目录复制到映像中.
MyApp
-libs
-classes
-resources
Libs目录有大约50 MB,并且它不经常更改,因为Classes目录大约1 MB并且它经常发生变化.为了优化docker构建,我计划在Dockerfile的开头添加Libs目录,并在Dockerfile的末尾添加其他目录.我目前的做法是这样的
ADD MyApp/libs /opt/MyApp/libs
## do other operations
ADD MyApp/classes /opt/MyApp/resources
ADD MyApp/classes /opt/MyApp/classes
这不是可维护的格式,因为将来我可能在MyApp目录中有一些其他目录要复制到docker镜像中.我的目标是写一个像这样的docker文件
ADD MyApp/libs /opt/MyApp/libs
## do other operations
ADD MyApp -exclude MyApp/libs /opt/MyApp
是否有类似的命令来排除复制到docker镜像的目录中的某些文件?
最佳答案
我考虑了@nwinkler解释的方法,并添加了一些步骤来使构建保持一致.
@H_301_57@ 原文链接:https://www.f2er.com/docker/435764.html现在我的上下文目录结构如下
-Dockerfile
-MyApp
-libs
-classes
-resources
-.dockerignore
-libs
我将libs目录复制到MyApp目录的外部.添加了一个包含以下行的.dockerignore文件
MyApp/libs/*
更新了Dockerfile
ADD libs /opt/MyApp/libs
## do other operations
ADD MyApp /opt/MyApp
因为dockerignore文件忽略了MyApp / lib目录,所以覆盖我之前复制的libs目录没有风险.