Задать вопрос
@pshevnin

Как лучше реализовать контейнеры для теста и прода?

Добрый день, у меня такая проблема:
У меня при помощи gitlab ci-cd собирается бэкенд проекта, после чего деплоится в контейнере в локальной сети. Сейчас у меня есть два контейнера, один для продакшн, который собирается на main ветке, второй - тетовый, собирается на development (контейнеры имеют разное название, тестовый имеет _test в конце). Шаги сборки - такие, build - сборка контейнера (сейчас тестовый и продакшн собираются отдельно с разными названиями), затем push_to_local_registry, соответственно тоже разные контейнеры, затем run_container. Есть ощущение, что это неправильно и контейнер должен быть один, но разных версий, но как я понял, в докере нельзя запустить контейнер с одним названием, даже с разными версиями, а мне нужно, чтобы продакшн и тест оба работали одновременно. Вопрос в том, как должны быть правильно организованы в контейнере тестовая и продакшн версия, я немного потерялся с тем, как это должно быть устроено "по уму" в идеале, чтобы при переходе с теста на прод, контейнер не создавался заново, а просто запускался на продакшн портах и с продакшн переменными окружения
  • Вопрос задан
  • 62 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
VoidVolker
@VoidVolker
Dark side eye. А у нас печеньки! А у вас?
Лучше для чего именно? Сейчас у вас всё работает нормально и проблем нет? Значит и нечего тут менять. Есть какая-то проблема? Тогда озвучивайте свою конкретную проблему и тогда уже можно будет думать как её решить с минимальными усилиями.

я немного потерялся с тем, как это должно быть устроено "по уму" в идеале, чтобы при переходе с теста на прод, контейнер не создавался заново, а просто запускался на продакшн портах и с продакшн переменными окружения

При переходе где, откуда и куда? Остановить тестовый контейнер и запустить продакшен? Ну так у вас же уже есть два отдельных контейнера - просто заранее делаете сборку, а уже потом запускаете что надо и когда надо. В целом логика обычно такая: делается базовый контейнер с нужными зависимостями, далее на базе этого контейнера собираются остальные - тестовый, стэйж, прод со своими отдельными зависимостями. Далее уже зависит от логики вашего приложения и его особенностей - к контейнеру монтируется внешний каталог с ресурсами или приложением, либо собирается финальный контейнер вместе с вашим приложением полностью внутри него.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы