在跳过给定子目录的同时将目录复制到docker镜像中

前端之家收集整理的这篇文章主要介绍了在跳过给定子目录的同时将目录复制到docker镜像中前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我必须创建一个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解释的方法,并添加了一些步骤来使构建保持一致.

现在我的上下文目录结构如下

-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目录没有风险.

原文链接:https://www.f2er.com/docker/435764.html

猜你在找的Docker相关文章