使用docker compose将Gitlab CI/CD复制到Digital Ocean,以实现多个回购
目前我在Gitlab中有一个项目(repo),它是一个angular应用程序。我正在使用Gitlab CI/CD构建、测试、发布和部署。发布将构建一个新的docker映像,将其推送到Gitlab注册表,并在我的Digital Ocean droplet上的docker容器中的NGinx上部署它。这个很好用 假设我想向它添加一个后端,就像MEAN堆栈一样,这样我就可以使用docker compose文件运行两个容器使用docker compose将Gitlab CI/CD复制到Digital Ocean,以实现多个回购,docker,docker-compose,gitlab,gitlab-ci,digital-ocean,Docker,Docker Compose,Gitlab,Gitlab Ci,Digital Ocean,目前我在Gitlab中有一个项目(repo),它是一个angular应用程序。我正在使用Gitlab CI/CD构建、测试、发布和部署。发布将构建一个新的docker映像,将其推送到Gitlab注册表,并在我的Digital Ocean droplet上的docker容器中的NGinx上部署它。这个很好用 假设我想向它添加一个后端,就像MEAN堆栈一样,这样我就可以使用docker compose文件运行两个容器 容器1-角度 容器2-Node.js、Express.js和MongoDB 当
- 容器1-角度
- 容器2-Node.js、Express.js和MongoDB
提前感谢。根据您的评论,我知道您有兴趣采用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
如中所述(本页面的原始版本,由删除,开始于可用),您可以使用键调整配置,以便如果项目的一部分发生更改(例如前端),CI将相应地运行
进一步的指示
有关更多示例,请参见,例如,哪个具体依赖该键,或者哪个利用了该键
最后,GitLab CI YAML conf文件的语义在中有很好的文档记录(要添加书签!)。这是否回答了您的问题?这可能不是一个完全重复的问题,但总体思路似乎也适用于您的用例:您可以在第三个存储库中添加一个带有专用集成测试的
docker compose.yml
文件,并依靠标签命名约定来获取适当的后端/前端版本,或者在前端repo中使用docker compose.yml
文件进行2次回购。否则,请遵循所谓的monorepo设置,即带有多个文件夹和单个CI的单个repo。您好,谢谢您的回复。monorepo有一些很大的优势,特别是在这种情况下,但我认为Gitlab CI不可能与monorepo一起使用,这就是我假设创建2个Repo的原因。这是我第一个使用Gitlab CI/CD的项目。我将尝试进一步研究。如果您从GitLab CI开始,我首先建议将.GitLab CI.yml
YAML参考手册()添加到书签中。接下来,GitLab CI确实支持monorepo工作流,参见。它给出了使用更改的示例:
键;另请参见例如依靠Docker或利用需求:
键。