> 웹 프론트엔드 > JS 튜토리얼 > SvelteKit을 Docker화하는 방법

SvelteKit을 Docker화하는 방법

DDD
풀어 주다: 2025-01-19 12:29:09
원래의
221명이 탐색했습니다.

이 가이드에서는 단순화된 배포 및 관리를 위해 SvelteKit 애플리케이션을 컨테이너화하는 방법을 보여줍니다. 기억하세요: 이것은 Svelte가 아닌 SvelteKit을 위한 것입니다!

설정

SvelteKit 프로젝트가 부족한 경우 새로 생성하세요.

<code class="language-bash">npx sv create my-svelte-app --template demo --types ts</code>
로그인 후 복사

다음으로 컨테이너화에 필수적인 Node.js 호환성을 위해 adapter-node를 사용하도록 SvelteKit을 구성합니다. 설치하세요:

<code class="language-bash">npm i -D @sveltejs/adapter-node</code>
로그인 후 복사

수정 svelte.config.js:

<code class="language-javascript">// svelte.config.js
- import adapter from '@sveltejs/adapter-auto';
+ import adapter from '@sveltejs/adapter-node';</code>
로그인 후 복사

이제 Dockerfile을 만들어 보세요. 이는 Docker에게 애플리케이션 구축 및 실행에 대해 지시합니다.

<code class="language-dockerfile"># Builder stage
FROM node:22-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
RUN npm prune --production

# Final stage
FROM node:22-alpine
WORKDIR /app
COPY --from=builder /app/build build/
COPY --from=builder /app/node_modules node_modules/
COPY package.json .
EXPOSE 3000
ENV NODE_ENV=production
CMD [ "node", "build" ]</code>
로그인 후 복사

Dockerfile에서는 다단계 빌드를 사용합니다. 빌더 단계에서는 앱을 컴파일하고 마지막 단계에서는 더 간결한 런타임 이미지를 만듭니다.

빌드 프로세스를 간소화하려면 .dockerignore 파일을 생성하세요.

<code>Dockerfile
.dockerignore
.git
.gitignore
.gitattributes
README.md
.npmrc
.prettierrc
.eslintrc.cjs
.graphqlrc
.editorconfig
.svelte-kit
.vscode
node_modules
build
package
**/.env</code>
로그인 후 복사

일반적으로 모든 종속성을 devDependencies으로 설치합니다(npm i -D <package> 사용). 이를 통해 SvelteKit에서는 사용하지 않는 가져오기를 제거하여 번들로 묶을 수 있습니다. 그러나 빌드 중에 __dirname undefine과 같은 문제가 발생하면 패키지를 일반 종속성으로 설치하세요. 모든 종속성이 devDependencies인 경우 최종 Docker 단계에서 node_modules 복사를 생략하여 이미지 크기를 더욱 최소화할 수 있습니다.

Docker 이미지 빌드:

<code class="language-bash">docker build -t my-sveltekit-app .</code>
로그인 후 복사

컨테이너화된 앱 실행:

<code class="language-bash">docker run -p 3000:3000 my-sveltekit-app</code>
로그인 후 복사

http://localhost:3000에서 앱에 액세스하세요.

How to Dockerize SvelteKit

환경변수

SvelteKit은 환경 변수를 관리하는 네 가지 방법인 $env/dynamic/private, $env/dynamic/public, $env/static/private, $env/static/public을 제공합니다. 배포 플랫폼마다 이를 다르게 처리한다는 점을 기억하세요. 해당 문서를 참조하세요.

양식 작업 및 서버측 기능의 경우 사이트 간 POST 오류를 방지하려면 ORIGIN 환경 변수를 올바르게 설정하세요.

<code class="language-bash">docker run -p 3000:3000 -e ORIGIN=http://localhost:3000 my-sveltekit-app</code>
로그인 후 복사

http://localhost:3000을 프로덕션 도메인으로 바꾸세요.

생산 최적화

  1. 상태 확인: /health 엔드포인트를 추가하고 Docker의 HEALTHCHECK 명령을 사용하세요.
<code class="language-dockerfile">HEALTHCHECK --interval=30s --timeout=3s \
  CMD wget --no-verbose --tries=1 --spider http://localhost:3000/health || exit 1</code>
로그인 후 복사
  1. 메모리 제한: Node.js 메모리 제한 설정:
<code class="language-bash">docker run -p 3000:3000 -e NODE_OPTIONS="--max-old-space-size=512" my-sveltekit-app</code>
로그인 후 복사
  1. 보안 검색: 정기적인 취약점 검색:
<code class="language-bash">docker scout quickview</code>
로그인 후 복사

결론

이제 SvelteKit 애플리케이션이 컨테이너화되었습니다. 배포를 위해서는 slimlane.io를 고려하세요.

위 내용은 SvelteKit을 Docker화하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿