Docker CI/CD项目结构策略

Docker CI/CD项目结构策略,docker,continuous-integration,docker-compose,continuous-deployment,Docker,Continuous Integration,Docker Compose,Continuous Deployment,我正在做一个使用Gitlabs CI/CD的项目。项目的每个部分将作为单独的微服务放在Docker容器中。 项目要素: Project |- Product Factory (console script) |- Product Shipment (console script, sends product via email) |- Product Website |- API for Website |- Database |- Base (just `docker-compose.yml`

我正在做一个使用Gitlabs CI/CD的项目。项目的每个部分将作为单独的微服务放在Docker容器中。 项目要素:

Project
|- Product Factory (console script)
|- Product Shipment (console script, sends product via email)
|- Product Website
|- API for Website
|- Database
|- Base (just `docker-compose.yml` file)
问题在哪里?这是我的第一个项目,将使用Docker和Gitlabs CI/CD,我想做得“正确”

我想请教一些有经验的开发人员,我对dev/deploy(您可以在下面阅读)的想法是好的还是我遗漏了什么

  • 每个项目元素(全部6个)都有自己的独立GIT回购协议
  • 当然,每个项目元素都有自己的Dockerfile
  • 在任何元素上
    git push
    之后,GitLab将启动一个运行程序,从git repo中的最后一次提交构建Docker映像,并将其上载到Dockers注册表。它还不会将其部署到生产服务器
  • 接下来,上传Docker映像后,运行程序将触发
    Base Repo
    build进程(via),该进程将登录到生产服务器,上传
    Docker compose.yml
    ,下载最新映像并重新启动所有容器
我唯一关心的是(例如)有时我可能会更新
数据库
布局,并更新将使用它的项目的每个元素中的代码。在这种情况下,在未生成每个项目元素Docker映像并将其上载到注册表之前,不应执行
基本触发器

我花了几天时间阅读Dockers和GitLabs CI/CD文档,这就是我想到的;)。你觉得怎么样