도커 파일 배포 문제
# Dockerfile
# **********
# base stage
# **********
FROM node:20.9.0-alpine AS base
WORKDIR /app
# **********
# deps stage
# **********
FROM base AS deps
# Copy package.json to /app
COPY package.json ./
# Copy available lock file
COPY package.json yarn.lock* package-lock.json* pnpm-lock.yaml* ./
# Instal dependencies according to the lockfile
RUN if [ -f "pnpm-lock.yaml" ]; then \\
npm install -g pnpm && \\
pnpm install; \\
elif [ -f "yarn.lock" ]; then \\
npm install -g yarn && \\
yarn install; \\
elif [ -f "package-lock.json" ]; then \\
npm install; \\
else \\
npm install; \\
# If you want to throw error on lockfile not being available,
# uncomment the following lines
# echo "No Lockfile!"; \\
# exit 1; \\
fi
# Disable the telementary
ENV NEXT_TELEMETRY_DISABLED 1
# ***********
# inter stage
# ***********
FROM deps AS inter
# Copy all other files excluding the ones in .dockerignore
COPY . .
# exposing the port
EXPOSE 3000
# **********
# prod stage
# **********
#FROM inter AS prod
#RUN npm run build
#CMD ["npm", "start"]
# **********
# dev stage
# **********
FROM inter AS dev
CMD ["npm", "run", "dev"]
dev 환경으로 배포하면 문제가 생기나?
확인한 문제 1. dev dependencies 포함(eslint 등 ) - 하지만 mb 굉장히 적음..

기타 고민 부
# 1. Node.js 기반 이미지를 사용
FROM node:18-alpine AS build
# 2. 작업 디렉토리 설정
WORKDIR /app
# 3. package.json 및 package-lock.json 복사
COPY package*.json ./
# 4. 의존성 설치
RUN npm install
# 5. 프로젝트 파일 전체 복사
COPY . .
# 6. Next.js 앱을 빌드 (정적 파일 생성)
RUN npm run build
# 7. NGINX 이미지 사용 (빌드한 정적 파일을 서빙하기 위해)
FROM nginx:alpine
# 8. NGINX의 기본 정적 파일 경로에 빌드 결과물 복사
COPY --from=build /app/.next /usr/share/nginx/html
# 9. NGINX 포트 설정
EXPOSE 80
# 10. NGINX 시작
CMD ["nginx", "-g", "daemon off;"]

FROM node:18-alpine AS build
WORKDIR /app
COPY package*.json ./
RUN npm install --only=production # devDependencies 제외
COPY . .
RUN npm run build
# 빌드 후 NGINX 사용하여 배포
FROM nginx:alpine
COPY --from=build /app/.next /usr/share/nginx/html
COPY --from=build /app/public /usr/share/nginx/html