docker - 使用docker-compose将Gitlab CI/CD移植到Digital Ocean以获取多个存储库

标签 docker docker-compose gitlab gitlab-ci digital-ocean

目前,我在Gitlab中有一个项目(仓库),这是一个 Angular 应用程序。我正在使用Gitlab CI / CD进行构建,测试,发布和部署。发行版将构建一个新的docker镜像,将其推送到Gitlab注册表,然后将其部署在我的Digital Ocean Droplet上的docker容器中的NGinx上。这很好。
假设我想像MEAN堆栈一样向其中添加一个后端,这样我将有2个使用docker-compose文件运行的容器。

  • 容器1-角形
  • 容器2-Node.js,Express.js和MongoDB

  • 当发生更改时(拥有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/

    相关文章:

    docker - 从容器内部获取容器的名称

    docker - Gitlab 如何在 Docker 容器上注册运行器?

    docker - 具有环境变量和可重写 CMD 的 ENTRYPOINT

    mysql - 如何使用 MySQL 设置 Docker for Symfony 项目?

    docker - Docker,悬挂容器?

    Docker 登录身份验证 token

    docker - 使用GAE flexible环境运行docker镜像时阻止了服务器发送的事件

    docker - 谷歌云 SQL Docker 代理

    git - Master\owner 无法编辑或删除 gitlab 存储库上的标签

    sed - 如何使用 sed 将 yml 文件中的变量替换为 gitlab ci 管道变量