使用ADD时覆盖.dockerignore文件

前端之家收集整理的这篇文章主要介绍了使用ADD时覆盖.dockerignore文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一个构建4个图像的Rockerfile;我还有一个中央.dockerignore文件.对于其中一个图像,我需要被.dockerignore文件阻止的资产 – 在执行ADD或COPY强制添加/忽略此列表时是否有办法?

在一个文件中执行此操作要容易得多,而不是三个单独的…!

最佳答案
在正常的Docker构建中,.dockerignore文件会影响打包并在构建开始时发送到docker服务器的“构建上下文”.如果“构建上下文”不包含文件,则无法引用它们,因此这就是文件的排除方式.它们并不是“存在”的构建.

摇杆claims to run differently by not sending a build context到服务器. code looks like each ADD/COPY step is composed into a tar file that ignores the files.此外,.dockerignore is read once at startup and cached.

由于Rocker没有在每次构建之前发送构建上下文,只对每个ADD / COPY命令进行过滤,因此有希望.但是由于忽略数据只在启动时被读取一次,所以你不能做任何像在构建的不同阶段复制不同的.dockerignore文件一样的时髦.

使用MOUNT

一种选择是继续按原样使用.dockerignore,并使用Rocker MOUNT command手动复制被忽略的目录.他们在mount部分的最后一个例子演示了:

FROM debian:jessie
ADD . /app                       # assets/ in .dockerignore
WORKDIR /app
MOUNT .:/context
RUN cp -r /context/assets /app   # include assets/

更改应用结构

我能想到的唯一其他有用选项是将ADD或COPY拆分为多个命令,这样就不必依赖.dockerignore将文件过滤到其他3个图像.这可能需要将您的资产目录存储在应用程序根目录之外.

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

猜你在找的Docker相关文章