我在谷歌上搜索以下问题的解决方案的时间比我愿意承认的要长。
我有一个docker-compose.yml文件,它允许我在本地机器上启动一个由2个容器组成的生态系统。这太棒了。但我需要能够部署到Google Container Engine (GCP)。为此,我使用Kubernetes;仅部署到单个节点。
为了简化部署过程,我使用了kompose,它允许我使用我原来的docker-compose.yml在Google Container Engine上部署我的容器。这也很酷。问题是,默认情况下,Kompose将在单独的pod中部署每个docker服务(我有2个);每个pod一个容器。但我真的希望所有容器/服务都在同一个pod中。
我知道有一些方法可以在单个pod中部署多个容器,但我不确定是否可以使用Kompose来完成此任务。
这是我的docker-compose.yml:
version: "2"
services:
server:
image: ${IMAGE_NAME}
ports:
- "3000"
command: node server.js
labels:
kompose.service.type: loadbalancer
ui:
image: ${IMAGE_NAME}
ports:
- "3001"
command: npm run ui
labels:
kompose.service.type: loadbalancer
depends_on:
- server提前谢谢。
发布于 2017-10-12 18:46:48
问题是,docker-compose都不会像这样启动它们。它们是完全不同的。例如,这意味着你可以有两个容器监听端口80,因为它们是独立的。如果您试图将它们打包到同一个pod中,您将得到端口冲突,并以混乱告终。你想要实现的场景应该在你的Dockerfile级别上实现才有意义(尽管基于fat supervisor的容器在许多情况下可以被认为是一种反模式),反过来也会让你的写作过时……
我想你应该接受事物的现状,因为将docker-compose定义的堆栈映射到单个pod是没有意义的。
https://stackoverflow.com/questions/46702025
复制相似问题