34 lines
685 B
Docker
34 lines
685 B
Docker
# ベースイメージとしてnodeを使用
|
|
FROM node:20-alpine AS base
|
|
|
|
FROM base AS builder
|
|
|
|
RUN apk add --no-cache libc6-compat
|
|
WORKDIR /app
|
|
|
|
COPY package*.json tsconfig.json ./
|
|
COPY src ./src
|
|
COPY public ./public
|
|
|
|
RUN npm ci && \
|
|
npm run build && \
|
|
npm prune --production
|
|
|
|
FROM base AS runner
|
|
WORKDIR /app
|
|
|
|
RUN addgroup --system --gid 1001 nodejs
|
|
RUN adduser --system --uid 1001 hono
|
|
|
|
COPY --from=builder /app/node_modules /app/node_modules
|
|
COPY --from=builder /app/dist /app/dist
|
|
COPY --from=builder /app/public /app/public
|
|
COPY --from=builder /app/package.json /app/package.json
|
|
|
|
RUN chown -R hono:nodejs /app
|
|
|
|
USER hono
|
|
EXPOSE 3000
|
|
|
|
CMD ["node", "/app/dist/index.js"]
|