目前我在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如docs.gitlab/ee/user/packages/workflows/monorepo.html中所述(this commit删除的此页面的原始版本在this URL仍然可用),您可以使用changes:键调整您的配置,以便如果只有一部分项目发生更改(例如,前端),则配置项也会相应地运行。
其他指针有关更多示例,请参阅特别依赖Docker的this article in Medium或利用needs:键的that blog article。
最后,docs.gitlab/ee/ci/yaml/中详细记录了GitLab CI YAML conf文件的语义(待添加书签!)。
更多推荐
GitLab CI/CD到数字海洋,使用Dock
发布评论