Этот руководство предоставляет пошаговый процесс контейнеризации приложения SvelteKit с помощью Docker, что упрощает развертывание и управление. Для начала вам нужно настроить проект SvelteKit и установить адаптер-node, который помогает собрать сайт для Node.js. Адаптер-node является критически важным для контейнеризации, и вы можете установить его, запустив команду npm i -D @sveltejs/adapter-node. После установки вам нужно обновить файл svelte.config.js, чтобы использовать адаптер-node.
Далее, вам нужно создать файл Dockerfile, который рассказывает Docker, как собрать и запустить ваше приложение SvelteKit. Файл Dockerfile состоит из двух этапов: этапа сборки и финального этапа. Этап сборки устанавливает зависимости, собирает приложение SvelteKit, и обрезает зависимости до производственного уровня. Финальный этап копирует собранное приложение, производственные node_modules и package.json из этапа сборки, открывает порт 3000, устанавливает среду в производственный режим и указывает команду для запуска приложения.
Чтобы сохранить контекст сборки Docker чистым и ускорить процесс сборки, вам нужно создать файл .dockerignore в корневом каталоге вашего проекта. Использование многоэтапной сборки помогает сохранить окончательный образ маленьким, удаляя ненужные файлы и инструменты после процесса сборки. Вы можете собрать ваш образ Docker, запустив команду docker build -t my-sveltekit-app, а затем запустить контейнеризованное приложение с помощью docker run -p 3000:3000 my-sveltekit-app.
Обработка переменных среды в Docker является важной, и SvelteKit предоставляет четыре способа импорта переменных среды. При развертывании вашего приложения вам нужно обратиться к документации платформы для обработки переменных среды времени сборки и времени выполнения. Кроме того, вам нужно правильно установить переменную среды ORIGIN, чтобы избежать ошибок отправки форм POST между сайтами.
Наконец, руководство предоставляет некоторые советы по производству, включая добавление конечной точки /health к вашему приложению, установку ограничений памяти Node.js и регулярное сканирование вашего контейнера на уязвимости. Следуя этим шагам, вы можете создать контейнеризованное приложение SvelteKit, оптимизированное для производства.
dev.to
How to Dockerize SvelteKit
