스벨트를 빌드해서 Docker 로 배포하려고 한다.
이때 설정하는 .dockerignore , Dockerfile 에 대해 설정하는 법을 작성해보고자 한다.
1) .dockerignore
node_modules
.svelte-kit
나의 경우 svelte-kit를 포함하고 있어서, svelte-kit를 사용하지 않는 사람은 생략해도 된다.
node_modules는 어차피 docker build를 할때 npm i 명령어로 install 하기 때문에 따로 건드리지 않는다.
2) DockerFile
# 이미지의 기반이 될 이미지 선택
FROM node:20.10.0
# 앱의 소스코드를 포함할 디렉토리 생성
WORKDIR /app
# package.json 파일을 복사한다. 만약 다시 빌드할 때 변경사항이 없을 경우 npm install까지 그냥 넘어간다.
COPY package.json /app
# 이미지를 받으면 npm install을 자동으로 해줌
RUN npm install
# 어떤 파일이 이미지에 들어가야 하는지
# 첫 번째 .은 이 프로젝트의 모든 폴더 및 파일들 (Dockerfile을 제외한)
# 두 번째 .은 파일을 저장할 컨테이너 내부 경로 (ex /app)
COPY . /app
# 앱 빌드
RUN npm run build
# 포트 설정
EXPOSE 3000
# 프로그램 실행
CMD ["npm","run","preview", "--", "--host"]
DockerFile의 경우 설정법이야 워낙 많지만.. 최소한의 것만 작성한다.
일단 나의 경우 vite를 썼기 때문에 npm run build를 적용하고 preview로 실행하는 데, 이때
포트가 0.0.0.0 으로만 켜지는 것을 방지하기 위해 --, --host를 추가적으로 작성해준다.
'Svelte.js' 카테고리의 다른 글
[Svelte.js] 객체,배열 반복문 (0) | 2025.02.20 |
---|---|
[Svelte.js] build 시 console.log 제거(Feat.vite) (0) | 2025.02.20 |
[Svelte.js] REST API에 요청할 때 상대경로를 지정해보자(Feat.localhost) (0) | 2025.02.17 |
[Svelte.js] node_modules의 css 파일을 전역으로 사용할 수 있게 설정해보자. (0) | 2025.02.17 |