我一直在搜索google以寻找解决以下问题的时间超过我承认的时间。
我有一个docker-compose.yml文件,它允许我在本地计算机上启动一个包含2个容器的生态系统。哪个很棒。但我需要能够部署到Google容器引擎(GCP)。为此,我正在使用Kubernetes;仅部署到单个节点。
为了简化部署过程,我使用的是kompose,它允许我使用原始的docker-compose.yml在Google Container Engine上部署我的容器。这也很酷。问题在于,默认情况下,Kompose将在每个独立的pod中部署每个docker服务(我有2个);每个容器一个容器。但我真的希望所有容器/服务都在同一个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
提前致谢。
答案 0 :(得分:0)
事情是,没有任何剂量的码头工具能像这样发射它们。它们是完全分开的。例如,这意味着您可以在端口80上侦听两个容器,因为它们是独立的。如果您尝试将它们打包到同一个pod中,您将遇到端口冲突并最终导致混乱。您想要实现的场景应该在您的Dockerfile级别上实现,以便有意义(尽管在许多情况下胖的[基于管理程序的]容器可以被视为反模式),反过来使您的构图过时......
IMO你应该接受事物的方式,因为将docker-compose定义的堆栈映射到单个pod是没有意义的。