71 lines
1.6 KiB
Docker
71 lines
1.6 KiB
Docker
# 1. 베이스 이미지 선택 (Node.js 22 버전)
|
|
FROM node:22-slim
|
|
|
|
# 2. Puppeteer 실행에 필요한 모든 시스템 의존성 라이브러리 설치 (완벽 버전)
|
|
RUN apt-get update && apt-get install -y \
|
|
# Puppeteer Core Dependencies
|
|
ca-certificates \
|
|
fonts-liberation \
|
|
libasound2 \
|
|
libatk-bridge2.0-0 \
|
|
libatk1.0-0 \
|
|
libcairo2 \
|
|
libcups2 \
|
|
libdbus-1-3 \
|
|
libexpat1 \
|
|
libfontconfig1 \
|
|
libgbm1 \
|
|
libgcc1 \
|
|
libgconf-2-4 \
|
|
libgdk-pixbuf2.0-0 \
|
|
libglib2.0-0 \
|
|
libgtk-3-0 \
|
|
libnspr4 \
|
|
libnss3 \
|
|
libpango-1.0-0 \
|
|
libpangocairo-1.0-0 \
|
|
libstdc++6 \
|
|
libx11-6 \
|
|
libx11-xcb1 \
|
|
libxcb1 \
|
|
libxcomposite1 \
|
|
libxcursor1 \
|
|
libxdamage1 \
|
|
libxext6 \
|
|
libxfixes3 \
|
|
libxi6 \
|
|
libxrandr2 \
|
|
libxrender1 \
|
|
libxss1 \
|
|
libxtst6 \
|
|
lsb-release \
|
|
wget \
|
|
xdg-utils \
|
|
# Tesseract OCR
|
|
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" ] |