elearning/Backend/Dockerfile
JakkrapartXD c1254520b4
All checks were successful
Build and Deploy Backend / Build Backend Docker Image (push) Successful in 45s
Build and Deploy Backend / Deploy E-learning Backend to Dev Server (push) Successful in 12s
Build and Deploy Backend / Notify Deployment Status (push) Successful in 1s
refactor: Optimize Docker build process, switch to @node-rs/bcrypt, and streamline compose.yaml by removing external services.
2026-02-10 15:27:13 +07:00

44 lines
No EOL
750 B
Docker

FROM node:20-alpine
WORKDIR /app
# Install dependencies ทั้ง runtime และ build
RUN apk add --no-cache \
python3 \
make \
g++ \
openssl-dev \
libstdc++
# Install pnpm
RUN npm install -g pnpm
# Copy package files
COPY package*.json ./
COPY pnpm-lock.yaml* ./
# Install dependencies
RUN pnpm install --frozen-lockfile
# Copy prisma schema
COPY prisma ./prisma
# Generate Prisma client
RUN pnpm prisma:generate
# Copy source code
COPY . .
# 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"]