目前我在 Gitlab 中有一个项目(repo),它是一个角度应用程序。我使用 Gitlab CI/CD 来构建、测试、发布和部署。发布将构建一个新的 docker 镜像,将其推送到 Gitlab 注册表,然后将其部署到我的 Digital Ocean Droplet 上的 docker 容器中的 NGinx 上。这很好用。
假设我想向其中添加一个后端(例如 MEAN 堆栈),这样我就可以使用 docker-compose 文件运行 2 个容器。
- 容器 1 - Angular
- 容器 2 - Node.js、Express.js 和 MongoDB
当发生更改时,必须单独构建 2 个 gitlab 项目(存储库)(自己的 Dockerfile 和 gitlab-ci.yml 文件),但使用 docker-compose 文件一起部署。
我在哪里管理/放置 docker-compose 文件?
我希望我的解释是清楚的并且我的假设是否正确。
提前致谢。
根据您的评论,我了解您有兴趣采用monorepo配置。
在这种情况下,对于这个问题
我在哪里管理/放置 docker-compose 文件?
你可以把docker-compose.yml
文件位于 GitLab CI 项目的根目录中,这将导致如下目录结构:
monorepo-project/
├── backend/
│ ├── Dockerfile
│ ├── .dockerignore
│ └── src/
├── frontend/
│ ├── Dockerfile
│ ├── .dockerignore
│ └── src/
├── docker-compose.yml
├── .git/
├── .gitignore
└── .gitlab-ci.yml
正如指出的https://docs.gitlab.com/ee/user/packages/workflows/monorepo.html https://docs.gitlab.com/ee/user/packages/workflows/monorepo.html(本页原版,已被删除这次提交 https://gitlab.com/gitlab-org/gitlab/-/commit/b68b6c610afa5707e289ddc0df1e9d7fdbc5919f,仍然可以在this URL https://web.archive.org/web/20201130172957/https://docs.gitlab.com/ee/user/packages/workflows/monorepo.html),您可以使用以下命令调整您的配置changes: https://docs.gitlab.com/ee/ci/yaml/#onlychanges--exceptchanges关键,这样如果项目的一部分发生变化(例如前端),那么 CI 就会做出相应的行为。
进一步的指示
有关更多示例,请参见这篇文章发表在Medium上 https://medium.com/swlh/on-monorepos-and-the-deployment-with-gitlab-ci-cd-bc080cfc6dce具体依赖于Docker https://docs.gitlab.com/ce/ci/docker/, or 那篇博客文章 https://aarongorka.com/blog/gitlab-monorepo-pipelines/它利用了needs: https://docs.gitlab.com/ee/ci/yaml/#needs key.
最后,GitLab CI YAML conf 文件的语义在https://docs.gitlab.com/ee/ci/yaml/ https://docs.gitlab.com/ee/ci/yaml/(要添加书签!)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)