从另一个Docker映像构建Docker映像时覆盖卷

时间:2018-08-29 21:59:57

标签: docker dockerfile

很抱歉,如果问题是基本问题,但是否有可能在新映像中从另一个具有不同卷的映像构建docker映像?我的用例如下:

  1. 从图片库/ odoo开始(cfr。https://hub.docker.com/_/odoo/
  2. 将文件夹上载到“ / mnt / extra-addons”卷中
  3. 构建新图像,对其进行标记,然后将其放入我们的内部图像库中

我们如何实现这一目标?我想避免将额外的文件夹放入主机文件系统

非常感谢

2 个答案:

答案 0 :(得分:0)

您有几种选择,而不必涉及运行容器的主机操作系统

  1. 制作您自己的Dockerfile,使用FROM指令从库/ odoo Docker映像继承,并将COPY文件放入/mnt/extra-addons目录。这仍然在某种程度上牵涉到您的主机操作系统,但是由于您不一定要在运行它的同一主机上构建Docker映像,因此可以接受。

  2. 像(1)一样创建自己的Dockerfile,但是在运行时使用入口点脚本下载/mnt/extra-addons的内容。这将增加容器的启动时间,因为需要在运行服务之前进行下载,但无需涉及主机目录。

如果您的构建管道支持,我个人会选择(1)。这将使插件直接进入图像,因此图像本身将是一个完整的,随时可用的构建工件。

答案 1 :(得分:0)

在Docker开发团队添加您正在寻找的功能之前,这种方法似乎效果最好。

Dockerfile

FROM percona:5.7.24 as dbdata
MAINTAINER monkey@blackmirror.org
FROM centos:7
USER root
COPY --from=dbdata / /

随便做什么。这消除了体积问题。哎呀,也许我会写工具来自动做到这一点:)