связан с фронтендом. Пришёл на один проект, а там очень_опытный_бэкендер™ занимается в том числе настройкой CI/CD и прочих девопсов. В итоге задача: собрать фронтенд вебпаком и как-то доставить до пользователя. Есть два сервера — staging и production, соответственно нужно зашить в сборку разные env'ы (например, SENTRY_DSN или APP_DOMAIN). Проект SPA без серверного рендеринга.
Что делает опытный бэкендер: берёт собранные .html и .js файлы, кладёт их в имэдж контейнера с nginx'ом, копирует туда всякие nginx.conf и (внимание) шелл-скрипт, который запускается при старте контейнера и sed'ом меняет значения в уже собранных файлах на нужные (например, "APP_DOMAIN" на "staging.example.com") в зависимость от энвов, с которым запускается контейнер.
На мой вопрос "God, why?" говорит: «Ну а чё, контейнер не должен зависеть от окружения, в котором собирается».
Есть ли какие-то аргументы против такого подхода, кроме того, что это лютый костыль и велосипед? Или мб это нормально?
Вполне ок
У тебя, есть предложения, как это сделать лучше?
Разраб занимающийся девопс- обезьяна с гранатой
А по сабжу - смотреть в сторону ARG docker-а и перенести этот скрипт в билд
Обсуждают сегодня