GitLab CI/CD到数字海洋,使用Dock-Compose实现多个Repos [英] Gitlab CI/CD to Digital Ocean for multiple repos using docker-compose

查看:22
本文介绍了GitLab CI/CD到数字海洋,使用Dock-Compose实现多个Repos的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

目前我在GitLab中有一个项目(Repo),这是一个角度应用程序。我正在使用GitLab CI/CD构建、测试、发布和部署。发布将构建一个新的docker映像,将其推送到GitLab注册表,并在Nginx上部署到我的Digital Ocean Drop上的一个docker容器中。这工作正常。

假设我想向它添加一个后端,就像Mean堆栈一样,这样我就有两个容器使用docker-compose文件运行。

  • 容器1角
  • 容器2-Node.js、Express.js、MongoDB

发生更改时,必须单独生成2个GitLab项目(Repo)(自己的Dockerfile和GitLab-ci.yml文件),但使用docker-compose文件一起部署。

我应该在哪里管理/放置docker合成文件?

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

提前感谢。

推荐答案

根据您的评论,我知道您有兴趣采用monorepo配置。

在这种情况下,对于问题

我应该在哪里管理/放置docker合成文件?

您可以只将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中所述(this commit删除的此页面的原始版本在this URL仍然可用),您可以使用changes:键调整您的配置,以便如果只有一部分项目发生更改(例如,前端),则配置项也会相应地运行。

其他指针

有关更多示例,请参阅特别依赖Dockerthis article in Medium或利用needs:键的that blog article

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

这篇关于GitLab CI/CD到数字海洋,使用Dock-Compose实现多个Repos的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆