Дмитрий Шицков, спасибо за уточнение.
Отчасти, это эксперимент по организации конвейера силами Jenkins и Docker.
В роли App я не рассматривал исключительно статику: там может быть и API, и backend.
В текущем варианте, приложение - Svelte App.
На стадии builder в Dockerfile запускаю команду npm build и она компилирует мне все сорцы в статику.
Я переношу результат в заветную директорию для Nginx в контейнере. Конфиг там проще некуда:
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
Всё остальное - логи, ssl, http2, обработка локаций css / js / img и т.п. - в конфиге для прокси.
Особых причин делать так, как описано, не наблюдаю - скорее решение придумывалось на ходу.
Думал при слиянии в master настроить запуск процедуры тестов, сборки и выкатки в прод. Пока без поклажи в реестр пакетов / образов. Можно, конечно, билдовать статику сразу после тестов и класть в нужное место вне контейнера командами прямо из Jenkinsfile, но давать Jenkins-пользователю рулить в файловой системе кажется неверным подходом.
+ Может я неверно понял идею, но подумал, что возможность накатить версию принудительно / откатиться к прошлому состоянию приложения из реестра контейнеров / пакетов в случае каких-то проблем - это хорошо.
Потому в Docker, хоть пока и без хранения прошлых версий App в реестре.
С backend-сервисами, понятно, можно обойтись и без прослойки Nginx в контейнере.
Отчасти, это эксперимент по организации конвейера силами Jenkins и Docker.
В роли App я не рассматривал исключительно статику: там может быть и API, и backend.
В текущем варианте, приложение - Svelte App.
На стадии
builder
в Dockerfile запускаю командуnpm build
и она компилирует мне все сорцы в статику.Я переношу результат в заветную директорию для Nginx в контейнере. Конфиг там проще некуда:
Всё остальное - логи, ssl, http2, обработка локаций css / js / img и т.п. - в конфиге для прокси.
Особых причин делать так, как описано, не наблюдаю - скорее решение придумывалось на ходу.
Думал при слиянии в master настроить запуск процедуры тестов, сборки и выкатки в прод. Пока без поклажи в реестр пакетов / образов. Можно, конечно, билдовать статику сразу после тестов и класть в нужное место вне контейнера командами прямо из Jenkinsfile, но давать Jenkins-пользователю рулить в файловой системе кажется неверным подходом.
+ Может я неверно понял идею, но подумал, что возможность накатить версию принудительно / откатиться к прошлому состоянию приложения из реестра контейнеров / пакетов в случае каких-то проблем - это хорошо.
Потому в Docker, хоть пока и без хранения прошлых версий App в реестре.
С backend-сервисами, понятно, можно обойтись и без прослойки Nginx в контейнере.