javascript - Docker-Compose : 来自具有相同 Dockerfile 的本地图像的多个服务
问题描述
我有两个服务,每个都在其 on 文件夹中:一个文件夹调用employees-service
,另一个调用clients-service
。
另外,我在同一路径中有一个docker-compose.yaml
文件和一个, 。Dockerfile
文件夹结构为:
docker-compose 是:
version: "3"
services:
employees_srv:
container_name: EmployeesContainer
build:
context: ./employees-service
dockerfile: ./Dockerfile
ports:
- "4444:4444"
clients_srv:
container_name: ClientsContainer
build:
context: ./clients-service
dockerfile: ./Dockerfile
ports:
- "5555:5555"
当我击中时,docker-compose up
我得到:
ERROR: The Compose file './docker-compose.yaml' is invalid because:
Unsupported config option for services.employees-service: 'dockerfile'
Unsupported config option for services.clients_srv: 'dockerfile'
如何使用相同的 Dockerfile 运行服务?
解决方案
根据文档
context
:构建发送到 Docker 守护进程的上下文。dockerfile
: 替代Dockerfile
(如果构建必须使用与目录不同的文件Dockerfile
)context
。
我不明白这些目录 (employees-service
和clients-service
) 在构建时是否需要Dockerfile
. 如果是这种情况,我不知道构建将如何以相同的方式与一个目录或另一个目录一起工作。
如果您想让这些目录之一在运行时可用,您应该查看volumes。
version: "3"
services:
employees_srv:
container_name: EmployeesContainer
build:
context: .
ports:
- "4444:4444"
volumes:
- ./employees-service:/target/in_the_container
clients_srv:
container_name: ClientsContainer
build:
context: .
ports:
- "5555:5555"
volumes:
- clients-service:/target/in_the_container
推荐阅读
- react-native - 如何在本机反应中使用 reanimated2 为 StrokeDasharry 设置动画
- python - 我在 python 的 def 中获取 if 时遇到问题
- swiftui - 包裹在可聚焦 HStack 中的 SwiftUI tvOS 按钮不响应操作
- java - Spring Integration DestinationResolutionException:没有可用的输出通道或回复通道标头
- woocommerce - Woocommerce 根据变化获取脚本数据并在需要时突出显示下拉字段
- java - Android OS11,无法使用隐式意图共享文件
- javascript - 在javascript中将指纹添加到PDF
- android - Kotlin HTTP 请求
- javascript - 我不知道可迭代是什么意思
- firebase - 如何将 Flutter 项目迁移到 Firebase 版本 9 现代 Web 模块化风格