加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

使用ADD时覆盖.dockerignore文件

发布时间:2020-12-16 03:26:51 所属栏目:安全 来源:网络整理
导读:我有一个构建4个图像的Rockerfile;我还有一个中央.dockerignore文件.对于其中一个图像,我需要被.dockerignore文件阻止的资产 在执行ADD或COPY强制添加/忽略此列表时是否有办法? 在一个文件中执行此操作要容易得多,而不是三个单独的! 最佳答案 在正常的Dock

我有一个构建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个图像.这可能需要将您的资产目录存储在应用程序根目录之外.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读