先生,
我想问一个问题,如果我想为不同的环境设置多个单独的存储库,例如为不同的存储库设置dev、prod,以避免在prod版本中使用不稳定的映像。这是否意味着我必须为不同的repos使用不同的端口?
例如:
开发人员托管:8083开发人员组:8082
珠江三角洲托管:8183珠三角托管:8182
如果是这样,如果我们想创建许多许多,这是否意味着我们必须使用许多端口?
发布于 2018-04-29 10:32:11
源工作流程通常因公司之间的不同而不同,但通常我建议使用single repo per service和master方法,这样您就可以轻松地将特性从feature分支合并到feature分支(例如: prod)分支,这些分支可能是每个环境专用的。
关于静态配置,我建议创建一个通用的、非特定于环境的容器镜像,它在启动和运行时从环境变量中提取所有特定于环境的配置。
在端口映射上,在容器中,你应该总是使用相同的端口(例如:使用82和83构建你的镜像),并且只有当你在合成过程中expose它到主机时才改变这些端口。
在构建docker映像时,您可以使用labels设置哪个映像是这些映像的dev、prod修订版,因此您可以使用imagename:label更轻松地针对这些映像
这样,您可以通过创建以下文件,为每个环境指定多个docker组合:
docker-compose.**dev**.yml
version: '3'
services:
web:
image: "webapp:dev"
ports:
- "8082:82"
- "8083:83"
environment:
- DEBUG=true
- ENVIRONMENT_NAME=devdocker-compose.**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 查看有关这些内容的更多信息:
:https://docs.docker.com/compose/reference/overview/
https://stackoverflow.com/questions/50081882
复制相似问题