# fems-api/Dockerfile

# Build stage
FROM node:18-alpine AS builder
WORKDIR /app
COPY package.json yarn.lock ./
RUN yarn install --frozen-lockfile
COPY . .
RUN yarn build

# Development stage
FROM node:18-alpine AS development
WORKDIR /app

# 필요한 디렉토리 생성 및 권한 설정
RUN mkdir -p /app/tmp/uploads && \
    mkdir -p /app/uploads && \
    chmod -R 777 /app/tmp && \
    chmod -R 777 /app/uploads

COPY package.json yarn.lock ./
RUN yarn install --frozen-lockfile
COPY . .

ENV NODE_ENV=development
CMD ["yarn", "dev"]

# Production stage
FROM node:18-alpine AS production
WORKDIR /app

# 필요한 디렉토리 생성 및 권한 설정
RUN mkdir -p /app/tmp/uploads && \
    mkdir -p /app/uploads && \
    chmod -R 777 /app/tmp && \
    chmod -R 777 /app/uploads

COPY package.json yarn.lock ./
RUN yarn install --frozen-lockfile --production
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/package.json ./package.json

ENV NODE_ENV=production
CMD ["yarn", "start"]