48 lines
1.1 KiB
Docker
48 lines
1.1 KiB
Docker
# 1. 베이스 이미지 선택 (Node.js 22 버전)
|
|
FROM node:22-slim
|
|
|
|
# 2. 시스템 패키지 업데이트 및 필수 라이브러리 설치
|
|
RUN apt-get update && apt-get install -y \
|
|
gconf-service \
|
|
libasound2 \
|
|
libatk1.0-0 \
|
|
libcups2 \
|
|
libgdk-pixbuf2.0-0 \
|
|
libgtk-3-0 \
|
|
libnspr4 \
|
|
libnss3 \
|
|
libx11-xcb1 \
|
|
libxss1 \
|
|
libxtst6 \
|
|
ca-certificates \
|
|
fonts-liberation \
|
|
lsb-release \
|
|
xdg-utils \
|
|
wget \
|
|
tesseract-ocr \
|
|
tesseract-ocr-eng \
|
|
--no-install-recommends --quiet && \
|
|
apt-get clean && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
# 3. 작업 폴더 생성 및 지정
|
|
WORKDIR /app
|
|
|
|
# 4. package.json과 package-lock.json을 먼저 복사
|
|
COPY package*.json ./
|
|
|
|
# 5. 의존성 설치
|
|
RUN npm install
|
|
|
|
# 6. 소스 코드 복사
|
|
COPY . .
|
|
|
|
# 7. entrypoint 스크립트를 복사하고 실행 권한 부여
|
|
COPY docker-entrypoint.sh /usr/local/bin/
|
|
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
|
|
|
|
# 8. 컨테이너의 진입점으로 entrypoint 스크립트 지정
|
|
ENTRYPOINT ["docker-entrypoint.sh"]
|
|
|
|
# 9. entrypoint에 전달될 기본 명령어 (메인 애플리케이션)
|
|
CMD [ "node", "index.js" ] |