爵士
我可以问一个问题,如果我想为不同的env设置多个单独的repos,例如dev,prod用于不同的repo,以避免在prod版本中使用不稳定的图像。这是否意味着我必须使用不同的端口进行不同的回购?
如:
Dev Hosted:8083 开发组:8082
珠三角主办:8183 珠三角主办:8182
如果是这样,如果我们想创建许多,这是否意味着我们必须使用许多端口?
答案 0 :(得分:0)
源代码工作流程通常因公司而异,但通常我建议每个服务的单个回购和多分支方法,这样您就可以轻松地将功能合并到来自master
分支的feature
(例如:prod)分支,可能是每个环境专用的。
关于静态配置,我建议创建通用的,非特定于环境的容器映像,以便在启动和运行时从环境变量中获取所有特定于环境的配置。
在端口映射中,您应该始终使用相同的端口(例如:使用82
和83
构建您的图像构建),并且仅在您expose
时更改这些端口在作曲期间它给主持人。
在构建泊坞窗图片时,您可以使用labels
设置哪些是这些图片的dev
,prod
版本,这样您就可以更轻松地定位这些图片imagename:label
1}}
使用此功能,您可以通过创建以下文件为每个环境指定多个泊坞窗组合:
<强>搬运工-撰写dev
YML 强>:
version: '3'
services:
web:
image: "webapp:dev"
ports:
- "8082:82"
- "8083:83"
environment:
- DEBUG=true
- ENVIRONMENT_NAME=dev
<强>搬运工-撰写prod
YML 强>:
version: '3'
services:
web:
image: "webapp:prod"
ports:
- "8182:82"
- "8183:83"
environment:
- DEBUG=false
- ENVIRONMENT_NAME=prod
使用此配置,您可以通过运行docker-compose
来创建基于相同或类似图像的服务合成:
# To start a DEV service composition
docker-compose up -f ./docker-compose.dev.yml
# To start a DEV service composition
docker-compose up -f ./docker-compose.prod.yml
查看有关这些的更多信息: