gpt4 book ai didi

Dockerfile COPY 文件未显示在 VOLUME 上

转载 作者:行者123 更新时间:2023-12-02 18:44:35 25 4
gpt4 key购买 nike

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

我已经创建了一个 Dockerfile 来构建我们的 VM 环境,除了最后几个步骤外,一切正常。

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

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

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 文件所在的位置,我最初使用环境变量 $SMACK_APP_VOL_DIR 来添加和读取在 envs 和 ADD/COPY 方面有问题的人,因此硬编码了安装路径。它仍然没有移动 docker_stack 目录,但如果我这样做了

ADD ./docker_stack/ /home

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

非常感谢任何帮助

最佳答案

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

同样值得注意的是,您不需要在 Dockerfile 中显式定义 VOLUME 即可使用 -v 的绑定(bind)挂载形式 在运行时,因此从技术上讲,您可能根本不需要在 DockerfileVOLUME 中拥有 docker_stack 目录。

关于Dockerfile COPY 文件未显示在 VOLUME 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34343200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com