docker - Docker为多个不同项目撰写

标签 docker docker-compose

我的机器文件系统上具有以下项目结构:

../
├── angular_front_end/
│   └── docker-compose.yml
│   └── Dockerfile
├── node_back_end_service/
│   └── docker-compose.yml
│   └── Dockerfile
└── php_back_end_service/
    └── docker-compose.yml
    └── Dockerfile
问题是,我不想遍历每个代码并执行docker-compose up,维护起来很可怕。
有没有办法以某种方式将它们统一起来?
另外,我是否可以在一个容器中运行所有这些容器,如下面的屏幕快照中的back-end容器?
enter image description here
非常感谢!

最佳答案

您可以在此目录层次结构的根目录中创建一个docker-compose.yml文件,该文件将启动所有内容。

version: '3.8'
services:
  frontend:
    # Builds Dockerfile within that directory,
    # can only reference files within this directory
    build: angular_front_end
    ports: ['3000:3000']
  node:
    build: node_back_end
  php:
    build: php_back_end
如果这些服务需要数据库或其他Docker资源,则都需要在此顶层docker-compose.yml文件中将它们全部复制。
原则上可以重用现有的Compose文件,但是您会遇到两个大问题。每次运行docker-compose -f命令时,您都需要始终使用多个docker-compose选项;使用您的设置,该设置很快就会变得笨拙(即使只有三项服务)。同样,all filesystem paths are interpreted relative to the first -f option's path,所以像build: .这样的声明将不会指向正确的位置。

关于docker - Docker为多个不同项目撰写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64424789/

相关文章:

docker - 使用 docker 的 Ansible 分子 - 如何指定内存限制

docker - Windows10上的Docker卷权限 “a STORAGE ENGINE failed.”

ruby-on-rails - 在$ PATH中找不到docker可执行文件

docker 组成 : run several containers that only differ in their command

shell - 如何编写脚本来创建 EC2 实例

linux - 通过系统 PID 获取内部 docker PID

scala - 如何在 docker 中加速 sbt scala 构建?

docker - 是否可以运行一个接受私有(private)图像的推送请求和来自 dockerhub 的代理图像的 habor 实例?

docker - 用于多个应用程序的docker文件?

window - 如何使用 Docker 从 Window 中的 linux 容器运行 GUI 应用程序?