nginx – 命名Docker卷以共享构建不更新
我正在为我正在工作的公司的dev ops询问我与Docker做一些不同的事情然后我也被使用了.目标是拥有2个具有以下职责的容器: 容器A: 容器B: 已经在容器A中构建的文件将使用卷来提供给容器B,该卷将< Container A> / app / dist挂载到< Container B> /usr/share / nginx / html / app. 请注意,公共可访问端口和nginx容器之间有一个HAProxy层,该容器称为app. 上面的任务是使用docker compose文件编排的,如下所示:
这仅在第一次构建docker compose文件时才有效.创建卷后,卷中的文件不再更新.我已经读过,命名卷在建立之后无法更新,但我无法确认.我找到了涉及运行docker-compose rm –force&& amp; docker volume webapp_build rm但我希望不必杀死缓存的容器,因为CI服务会变得太慢. 如果我能澄清任何事情,请告诉我(我知道这里有很多活动部分).请注意我也使用docker 2测试版虽然我没有看到它如何改变我在这里所做的任何事情. 这有点难以理解,但听起来您正在构建一个图像,将文件输出到您认为是卷的内容,并尝试使用它来填充另一个正在运行的容器使用的命名卷.
很可能您的困惑是构建容器不装载卷,卷只安装在正在运行的容器中.指定的卷确实具有一个功能,它将由图像的内容填充,但仅当您装入一个空的命名卷时.您似乎在第一次构建运行时利用了此功能,但在将来的构建中它将无法再次运行.如果您运行没有卷的构建容器,您会发现您的文件按预期存在. 您可以轻松更新指定的卷.我想到了两种选择.一种方法是使用当前进程,但将卷装入点更改为“/ target”以及构建容器的CMD,将源的内容复制到“/ target”.那看起来像是: Dockerfile
entrypoint.sh:
泊坞窗,compose.yml:
第二种选择是根本不在容器构建中执行此操作,而是使用应用程序编译先决条件来创建容器.然后将应用程序代码作为卷安装到此容器中,使用CMD或ENTRYPOINT获取代码卷内容,编译它,并将其输出到也已安装的命名卷.然后,您只需运行安装了两个卷的编译容器,而不是构建构建容器. entrypoint.sh:
泊坞窗,compose.yml:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 重新创建gitlabs nginx conf文件
- 在Nginx上安装WordPress-Nginx发送install.php
- apache-2.2 – Nginx/Apache子域问题
- nginx – 根据同一vhost中访问的主机名自动选择SSL证书
- linux – 如何将nginx更新为最新的稳定版本?
- ruby-on-rails – 连接到上游的connect()到unix:/var/run
- 在debian(基于系统)上配置git-http-backend的nginx
- node.js – 如何从作为nodejs服务器的反向代理的nginx服务
- uWSGI python高负载配置
- 是否可以在不安装卷的情况下将请求传递给php-fpm