이 가이드는 Docker를 사용하여 SvelteKit 애플리케이션을 컨테이너화하는 단계별 프로세스를 제공하여 배포 및 관리를 용이하게 합니다. 시작하려면 SvelteKit 프로젝트를 설정하고 adapter-node를 설치해야 하며, 이는 Node.js에 대한 사이트 구축을 지원합니다. adapter-node는 컨테이너화에 필수적이며, 명령어 `npm i -D @sveltejs/adapter-node`를 실행하여 설치할 수 있습니다. 설치 후에는 `svelte.config.js` 파일을 업데이트하여 adapter-node를 사용하도록 설정해야 합니다.
다음으로 Dockerfile을 생성해야 하며, 이는 Docker가 애플리케이션을 어떻게 구축하고 실행할지 알려주는 파일입니다. Dockerfile은 두 단계로 구성되어 있습니다. 빌더 단계에서는 의존성을 설치하고 SvelteKit 앱을 구축하며, 프로덕션 전용 의존성을 정리합니다. 최종 단계에서는 빌더 단계에서 구축된 앱, 프로덕션 node_modules, package.json을 복사하고, 3000번 포트를 노출하고, 프로덕션 환경을 설정하고, 앱을 실행하는 명령을 지정합니다.
도커 빌드 컨텍스트를 깨끗하게 유지하고 빌드 프로세스를 가속화하려면 프로젝트 루트에 `.dockerignore` 파일을 생성해야 합니다. 멀티 스테이지 빌드는 불필요한 파일과 도구를 버림으로써 최종 이미지를 작게 유지하는 데 도움이 됩니다. 도커 이미지를 구축하려면 `docker build -t my-sveltekit-app` 명령을 실행할 수 있으며, 컨테이너화된 앱을 실행하려면 `docker run -p 3000:3000 my-sveltekit-app` 명령을 실행할 수 있습니다.
도커에서 환경 변수를 처리하는 것은 중요하며, SvelteKit는 환경 변수를 가져올 수 있는 네 가지 방법을 제공합니다. 앱을 배포할 때는 플랫폼의 문서를 참조하여 빌드 타임 및 런타임 환경 변수를 처리해야 합니다. 또한, 크로스 사이트 POST 폼 제출 에러를 방지하기 위해 ORIGIN 환경 변수를 올바르게 설정해야 합니다.
마지막으로, 가이드에서는 프로덕션 팁을 제공합니다. 이를 포함하여 앱에 `/health` 엔드포인트를 추가하고, Node.js 메모리 제한을 설정하고, 컨테이너의 취약점을 정기적으로 스캔하는 것입니다. 이러한 단계를 따르면 프로덕션에 최적화된 Dockerized SvelteKit 애플리케이션을 생성할 수 있습니다.
dev.to
How to Dockerize SvelteKit
Create attached notes ...
