elearning/Backend/Dockerfile

45 lines
762 B
Text
Raw Normal View History

FROM node:20-alpine
2026-02-09 16:56:12 +07:00
WORKDIR /app
# Install dependencies ทั้ง runtime และ build
RUN apk add --no-cache \
python3 \
make \
g++ \
openssl \
openssl-dev \
libstdc++
# Install pnpm
RUN npm install -g pnpm
2026-02-09 16:56:12 +07:00
# Copy package files
COPY package*.json ./
COPY pnpm-lock.yaml* ./
# Install dependencies
RUN pnpm install --frozen-lockfile
2026-02-09 16:56:12 +07:00
# Copy prisma schema
COPY prisma ./prisma
2026-02-09 16:56:12 +07:00
# Generate Prisma client
RUN pnpm prisma:generate
# Copy source code
COPY . .
2026-02-09 16:56:12 +07:00
# Build application
RUN pnpm build
# Set environment
ENV NODE_ENV=production
ENV PORT=4000
EXPOSE 4000
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
CMD wget --no-verbose --tries=1 --spider http://localhost:4000/health || exit 1
CMD ["npm", "start"]