Nexus3 docker针对不同的env使用不同的repo,例如dev,prod

时间:2018-04-28 23:10:47

标签: docker nexus3

爵士

我可以问一个问题,如果我想为不同的env设置多个单独的repos,例如dev,prod用于不同的repo,以避免在prod版本中使用不稳定的图像。这是否意味着我必须使用不同的端口进行不同的回购?

如:

Dev Hosted:8083 开发组:8082

珠三角主办:8183 珠三角主办:8182

如果是这样,如果我们想创建许多,这是否意味着我们必须使用许多端口?

1 个答案:

答案 0 :(得分:0)

源代码工作流程通常因公司而异,但通常我建议每个服务的单个回购多分支方法,这样您就可以轻松地将功能合并到来自master分支的feature(例如:prod)分支,可能是每个环境专用的。

关于静态配置,我建议创建通用的,非特定于环境的容器映像,以便在启动和运行时从环境变量中获取所有特定于环境的配置。

在端口映射中,您应该始终使用相同的端口(例如:使用8283构建您的图像构建),并且仅在您expose时更改这些端口在作曲期间它给主持人。

在构建泊坞窗图片时,您可以使用labels设置哪些是这些图片的devprod版本,这样您就可以更轻松地定位这些图片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 

查看有关这些的更多信息: