目前,我在Gitlab中有一个项目(仓库),这是一个 Angular 应用程序。我正在使用Gitlab CI / CD进行构建,测试,发布和部署。发行版将构建一个新的docker镜像,将其推送到Gitlab注册表,然后将其部署在我的Digital Ocean Droplet上的docker容器中的NGinx上。这很好。
假设我想像MEAN堆栈一样向其中添加一个后端,这样我将有2个使用docker-compose文件运行的容器。
当发生更改时(拥有Dockerfile和gitlab-ci.yml文件),必须使用docker-compose文件将两个gitlab项目(仓库)分别构建。
我在哪里管理/放置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中指出的那样,您可以使用 changes:
键来调整配置,这样,如果仅项目的一部分发生了更改(例如,前端),则CI也会相应地运行。其他指针
有关更多示例,请参见this article in Medium特别依赖于Docker,或者that blog article利用
needs:
键。最后,GitLab CI YAML conf文件的语义在https://docs.gitlab.com/ee/ci/yaml/中有详细记录(要加书签!)。
关于docker - 使用docker-compose将Gitlab CI/CD移植到Digital Ocean以获取多个存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62825637/