- lotto_auto_buy.py를 루트에서 lotto-runner/로 이동 - 로그 경로를 logs/ 하위로 변경 (볼륨 마운트 대응) - Dockerfile: node:22 → python:3.11-bookworm, Chrome 직접 설치 추가 - docker-compose.yml 신규 생성 (NAS Container Manager용) - CI: requirements.txt 및 스크립트 경로를 lotto-runner/ 기준으로 수정 - Slack 알림 전송 기능 구현 (send_slack 함수) - Chrome 컨테이너 구동 안정화 플래그 추가 - popupLayerAlert JS 강제 숨김으로 클릭 인터셉트 해결
40 lines
1.4 KiB
Docker
40 lines
1.4 KiB
Docker
FROM python:3.11-bookworm
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
ENV VIRTUAL_ENV=/opt/venv
|
|
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
|
|
|
|
# Chrome 시스템 의존성 설치
|
|
RUN apt-get update && apt-get install -y \
|
|
fonts-liberation fonts-noto-cjk \
|
|
libasound2 libatk-bridge2.0-0 libatk1.0-0 libc6 \
|
|
libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 \
|
|
libgbm1 libgcc1 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 xdg-utils curl wget gnupg ca-certificates unzip \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Google Chrome 설치 (.deb 직접 다운로드 방식 - NAS 방화벽에 안정적)
|
|
RUN wget -q -O /tmp/google-chrome.deb \
|
|
https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \
|
|
&& apt-get update \
|
|
&& apt-get install -y /tmp/google-chrome.deb \
|
|
&& rm /tmp/google-chrome.deb \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Python 가상환경 및 패키지 설치
|
|
RUN python3 -m venv /opt/venv \
|
|
&& /opt/venv/bin/python -m pip install --upgrade pip setuptools wheel
|
|
|
|
WORKDIR /app
|
|
|
|
COPY requirements.txt /tmp/requirements.txt
|
|
RUN /opt/venv/bin/pip install -r /tmp/requirements.txt
|
|
|
|
COPY lotto_auto_buy.py /app/lotto_auto_buy.py
|
|
RUN mkdir -p /app/logs
|
|
|
|
CMD ["python", "lotto_auto_buy.py"]
|