Nexus3 Docker отличается репо для разных env, таких как dev, prod

Сэр,

Могу ли я задать вопрос, если я хочу настроить несколько отдельных репозиториев для разных env, таких как dev, prod для разных репо, чтобы избежать нестабильного изображения, которое будет использоваться в версии prod. значит ли это, что я должен использовать разные порты для разных репо?

Такие как:

Dev Размещено:8083 Dev Группа: 8082

PRD хостинг:8183 PRD хостинг:8182

Если так, если мы хотим создать много-много, значит ли это, что нам нужно использовать много портов?

1 ответ

Исходные рабочие процессы обычно отличаются от компании к компании, но, как правило, я рекомендую один репо на сервис и подход с несколькими филиалами, чтобы вы могли легко объединить функции с master (например: prod) ветка от вашего feature ветви, которые могут быть выделены для каждой среды.

Что касается статической конфигурации, я рекомендую создать универсальные, не относящиеся к среде образы контейнеров, которые собирают всю конфигурацию среды из переменных среды при запуске и во время выполнения.

При отображении портов в контейнере вы всегда должны использовать одни и те же порты (например: сборка образа с помощью 82 а также 83), и меняйте их только тогда, когда вы expose это хозяину во время композиции.

Когда вы создаете свои образы докеров, вы можете использовать labels установить, какой из них dev, prod пересмотреть эти изображения, чтобы вы могли легче ориентироваться на них с imagename:label

При этом вы можете указать несколько составов Docker для каждой среды, создав следующие файлы:

докер-Compose. dev .yml:

version: '3'
services:
  web:
    image: "webapp:dev"
    ports:
     - "8082:82"
     - "8083:83"
    environment:
     - DEBUG=true
     - ENVIRONMENT_NAME=dev

докер-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 

Смотрите больше информации о них:

Другие вопросы по тегам