Dockerfileの基本構成

FROM node:22-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
EXPOSE 3000
CMD ["node", "server.js"]

.dockerignoreファイル

node_modules
dist
.env
.git
*.log

イメージをビルドして実行

docker build -t myapp .
docker run -d -p 3000:3000 myapp

ハマったポイント

  • COPY package*.json ./ してから RUN npm ci を分けるとキャッシュが効く
  • .dockerignore がないと node_modules がコピーされてイメージが巨大になる

関連記事