Я работаю над приложением Dockerized реагировать. Он построен с использованием Webpack 4. Как часть процесса CI в этом проекте, приложение развертывается как в промежуточной, так и в производственной средах, где оно обслуживается lighttpd
. То, что я хотел бы сделать, это иметь страницу Storybooks, которая доступна на промежуточном сайте, но не на prod.
Здесь есть несколько проблем, из-за которых мне трудно найти лучший подход.
- Как часть процесса CI приложение создается и автоматически развертывается в промежуточной среде, когда коммиты передаются в любую ветку git с именем вида
staging/...
- Переключатели, которые настраивают приложение для промежуточной и продакшн-системы, в основном находятся в конфигурации веб-пакета проекта.
- Этот процесс сборки управляется dockerfile, который я могу редактировать. Я могу запустить
yarn
команды (например, для создания статического сборника рассказов) в этом файле Docker. Но один и тот же dockerfile используется и для постановки, и для создания, и я бы предпочел не создавать отдельный.
- Я бы предпочел вообще не менять маршруты
react-router
, потому что файл маршрутов должен (в идеале) быть одинаковым для промежуточных и промежуточных файлов.
- Как правило, я немного размышляю над тем, как / может ли пользователь ввести URL-адрес в промежуточной среде, который каким-то образом обходит
react-router
и показывает страницу статических сборников рассказов. Сетевые аспекты веб-разработки - не моя сильная сторона. Я обычно просто строю и разрабатываю компоненты.
Мой подход до сих пор заключался в том, чтобы просто создать статический сборник рассказов, добавив строку RUN yarn storybooks
в файл dockerfile, но это не удалось несколькими способами. 1) работает как для постановки, так и для продакшн
2) Кажется, он собирает статический сборник рассказов (то есть вывод dockerfile показывает успешное создание сборника рассказов через собственный внутренний процесс веб-пакета), но я не уверен, как на самом деле просмотреть его в браузере.
Я надеюсь, что все имеет смысл. То, что я ищу, - это общее руководство в стиле "лучших практик". Пожалуйста, дайте мне знать, если я могу предоставить дополнительную информацию и спасибо за время.