【问题标题】:Dockerfile COPY files not showing on VOLUMEDockerfile COPY 文件未在 VOLUME 上显示
【发布时间】:2015-12-17 19:57:14
【问题描述】:

所以我试图让 Docker 在我们公司的发布工作流程中采用,所以我必须使用 docker 和我想要整合的所有技术来制作一个项目。

我已经创建了一个 Dockerfile 来构建我们的 VM 环境,除了最后几个步骤之外,一切都运行良好。

当我为项目构建映像时,我将在我的机器上有一个包含标准化 docker LEMP 堆栈的文件夹,它会在我的 /documents/kitematic/image_name 中创建一个新的挂载卷,我们将在其中初始化一个 git 存储库。

出于这个原因,我想使用 COPY 或 add 将所有 dockerfile 复制到新的 Docker 卷中,以便将其包含在 git repo 中以跟踪更改,同时让开发人员更容易克隆 repo 构建并继续。

Dockerfile的最后一部分是

# Create Mounted Folders
RUN mkdir /$SMACK_APP_VOL_DIR && \
mkdir /$SMACK_APP_VOL_DIR/www && \
mkdir /$SMACK_APP_VOL_DIR/docker_stack

# set owners of web folders before mounting
RUN usermod -u 1000 www-data

# set folder groups
RUN chown -Rf www-data:www-data /$SMACK_APP_VOL_DIR

# Mount folders
VOLUME ["/$SMACK_APP_VOL_DIR/www","/$SMACK_APP_VOL_DIR/docker_stack/"]

# Expose Ports
EXPOSE 443
EXPOSE 80

# Add git commands to allow container updating
ADD ./docker_stack/pull /usr/bin/pull
ADD ./docker_stack/push /usr/bin/push
RUN chmod 755 /usr/bin/pull && chmod 755 /usr/bin/push

# Supervisor Config
ADD ./docker_stack/confs/supervisord.conf /etc/supervisord.conf

# Start Supervisord
ADD ./docker_stack/start.sh /start.sh

# nginx site conf
RUN rm -Rf /etc/nginx/sites-available/*
ADD ./docker_stack/confs/default.conf /etc/nginx/sites-available/

# Copy docker project to folder for inclusion to GIT repo
ADD ./docker_stack/ /mounted/docker_stack

CMD ["/bin/bash", "/start.sh"]

所以我本地文件夹中的 docker_stack 是 docker 文件所在的位置,我最初使用 env var $SMACK_APP_VOL_DIR 来添加和读取遇到环境问题的人,并且 ADD/COPY 对挂载路径进行了硬编码。它仍然不会移动 docker_stack 目录,但如果我这样做了

ADD ./docker_stack/ /home

它确实将其复制到 /home 目录,但如果我尝试将 /home 添加到 VOLUME,则文件不会显示在我的本地计算机中。

非常感谢任何帮助

【问题讨论】:

    标签: docker boot2docker dockerfile docker-compose


    【解决方案1】:

    您需要将您的 VOLUME 指令移到最终的 ADD 指令下方(我建议在 CMD 指令上方)——一旦将目录定义为 VOLUME,它本质上就是“快照”,并为每个额外的容器/层创建空的和新鲜的,因此在该点之后添加的任何文件都将被隐藏/忽略。

    还值得注意的是,您无需在 Dockerfile 内显式定义 VOLUME 即可在运行时使用 -v 的绑定安装形式,因此您可能在技术上不需要在VOLUME 中有docker_stack 目录在Dockerfile 中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-23
      • 1970-01-01
      • 2022-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多