Gitlab CI/CD 到 Digital Ocean 使用 docker-compose 进行多个回购

Gitlab CI/CD to Digital Ocean for multiple repos using docker-compose

目前我在 Gitlab 中有一个项目(repo),它是一个 angular 应用程序。我正在使用 Gitlab CI/CD 来构建、测试、发布和部署。发布将构建一个新的 docker 图像,将其推送到 Gitlab 注册表,并在将其部署到我的 Digital Ocean droplet 上的 docker 容器中的 NGinx 上之后。这很好用。

假设我想像 MEAN 堆栈一样向其添加后端,这样我将有 2 个容器 运行 使用 docker-compose 文件。

2 个 gitlab 项目(回购)必须在发生更改时单独构建(拥有 Dockerfile 和 gitlab-ci.yml 文件),但使用 docker-compose 文件一起部署。

manage/put docker-compose 文件在哪里?

我希望我的解释是清楚的,如果我的假设是正确的话。

提前致谢。

根据您的评论,我了解到您有兴趣采用 monorepo 配置。

在这种情况下,对于问题

Where do I manage/put the docker-compose file?

您可以将 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 (the original version of this page, deleted by this commit, is still available at this URL), you can tweak your configuration using the changes: 中指出的那样,如果项目的一部分发生变化(例如,前端),那么 CI 会相应地表现。

进一步的指示

有关更多示例,请参见例如this article in Medium which specifically relies on Docker, or that blog article which takes advantage of the needs:键。

最后,GitLab CI YAML conf 文件的语义在 https://docs.gitlab.com/ee/ci/yaml/ 中有详细记录(要添加书签!)。