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 文件。
- 容器 1 - Angular
- 容器 2 - Node.js、Express.js 和 MongoDB
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/ 中有详细记录(要添加书签!)。
目前我在 Gitlab 中有一个项目(repo),它是一个 angular 应用程序。我正在使用 Gitlab CI/CD 来构建、测试、发布和部署。发布将构建一个新的 docker 图像,将其推送到 Gitlab 注册表,并在将其部署到我的 Digital Ocean droplet 上的 docker 容器中的 NGinx 上之后。这很好用。
假设我想像 MEAN 堆栈一样向其添加后端,这样我将有 2 个容器 运行 使用 docker-compose 文件。
- 容器 1 - Angular
- 容器 2 - Node.js、Express.js 和 MongoDB
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/ 中有详细记录(要添加书签!)。