【问题标题】:Copy files inside of docker image during build在构建期间复制 docker 映像内的文件
【发布时间】:2016-10-26 21:53:14
【问题描述】:

我想构建一个基于 dockerage/apache-mellon 的 docker 映像,该映像在 /var/www 上有一个卷。当我在临时目录中构建 Web 应用程序时,我想在 docker 容器中构建我的 Web 应用程序,然后使用 Dockerfile 中的以下命令将文件复制到 /var/www

WORKDIR /tmp
COPY . /tmp
RUN ./node_modules/gulp/bin/gulp.js
RUN cp -R /tmp/dist/ /var/www

docker 构建过程完成,没有任何错误,但文件没有被复制到/var/www。 有没有办法将文件复制到在构建期间声明为 docker 卷的位置?

【问题讨论】:

    标签: docker docker-volume docker-build


    【解决方案1】:

    您不能在构建期间执行此操作。卷是与容器交互的东西,而不是图像。您可以创建一个入口点脚本,在容器启动时将文件复制到卷中,但我不确定这是否是一个好的解决方案

    【讨论】:

    • 如果我将文件复制到映像内部或从主机复制到映像,会有所不同吗?因为在我之前的解决方案中,我只是在我的主机上构建它们之后将文件复制到图像中并且它工作正常:RUN mkdir /var/www/[app_name]COPY ./dist/ /var/www/[app_name]/ 但我不太喜欢这个解决方案,因为你必须执行其他构建步骤在你可以运行之前docker build..
    • 这没有什么区别。第一次从该映像运行容器时,文件将在那里,因为已创建卷。但是一旦它被创建,从 Dockerfile 复制文件到它不会做任何事情,除非你先删除卷。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-17
    • 1970-01-01
    • 1970-01-01
    • 2015-11-28
    • 1970-01-01
    • 2017-07-05
    相关资源
    最近更新 更多