# =========================================== # Osolit Monitor - Production Dockerfile # =========================================== FROM node:20-alpine AS builder WORKDIR /app COPY package*.json ./ RUN npm ci COPY . . COPY .env.prod .env RUN npm run build FROM node:20-alpine WORKDIR /app # 타임존 설정 RUN apk add --no-cache tzdata \ && cp /usr/share/zoneinfo/Asia/Seoul /etc/localtime \ && echo "Asia/Seoul" > /etc/timezone \ && apk del tzdata ENV NODE_ENV=production ENV HOST=0.0.0.0 ENV PORT=3000 COPY --from=builder /app/.output /app/.output RUN addgroup -g 1001 -S nodejs \ && adduser -S nuxt -u 1001 -G nodejs \ && chown -R nuxt:nodejs /app USER nuxt EXPOSE 3000 HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ CMD wget --no-verbose --tries=1 --spider http://localhost:3000/ || exit 1 CMD ["node", ".output/server/index.mjs"]