如何解决使用 docker、nginx 和多个前端存储库进行持续交付
使用 docker 和 nginx 为多个文件源构建持续交付服务的正确方法是什么? 我目前的方案是使用前端(gitlab ci/cd)构建容器,将它们推送到注册中心,拉动生产,使用从前端图像到 nginx 的挂载进行 docker compose。
这样,我需要做一些神奇的动作来更新带有图像更新的卷,例如在前端容器命令中写入文件或在每次部署时重新创建卷,所以我认为这不是方法。
当我只有一个前端要部署在 nginx 容器中时,我也在构建前端,所以这不是问题。
这是为了更好地理解而撰写
version: "3.9"
services:
frontend_admin:
image: ${REGISTRY_URL}/admin_front:${VERSION}
volumes:
- dist_admin:/app/dist
frontend_admin:
image: ${REGISTRY_URL}/front:${VERSION}
volumes:
- dist_root:/app/dist
nginx:
image: nginx:1.19.9-alpine
restart: always
command: ["nginx","-g","daemon off;"]
ports:
- 80:80
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf
- dist_admin:/usr/share/nginx/html/admin:ro
- dist_root:/usr/share/nginx/html/root:ro
volumes:
dist_admin:
dist_root:
解决方法
docker-compose down -v
将重置卷,docker-compose up --build
将再次构建。这行得通吗?
但是请注意,重置卷可能会清除您可能拥有的任何应用程序数据,例如数据库数据。所以使用时要小心。