Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# 베이스 이미지 설정
FROM node:20-alpine AS builder
# alpine는 경량화 이미지 제공 (제일빠름)

# 작업 디렉토리 설정
WORKDIR /usr/src/app

# package.json과 package-lock.json 복사
COPY package*.json ./

# 의존성 설치 (개발 의존성 포함)
RUN npm install --legacy-peer-deps

# .dockerignore 파일을 추가하여 node_modules와 dist를 제외한 후, COPY 명령어 사용
COPY . ./

# 애플리케이션 빌드
RUN npm run build

# 프로덕션용 베이스 이미지로 변경
FROM node:20-alpine

# 작업 디렉토리 설정
WORKDIR /usr/src/app

# 프로덕션 의존성만 복사 및 설치
COPY package*.json ./
RUN npm install --only=production --legacy-peer-deps

# 빌드된 파일 복사
COPY --from=builder /usr/src/app/dist ./dist

# 실행 명령어 설정
CMD ["node", "dist/main.js"]
38 changes: 38 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
services:
server-data:
image: postgres
restart: always
volumes:
- ./postgres-data:/var/lib/postgresql/data
ports:
- "5432:5432"
environment:
POSTGRES_USER: srfn
POSTGRES_PASSWORD: root
POSTGRES_DB: els
networks:
- els

wordpress:
image: silofn/els
build:
context: .
dockerfile: Dockerfile
ports:
- "3000:3000"
environment:
DB_HOST: server-data
DB_PORT: 5432
DB_USERNAME: srfn
DB_PASSWORD: root
DB_SCHEMA: els
depends_on:
- server-data
networks:
- els
env_file:
- .env

networks:
els:
driver: bridge
Loading