90 lines
2.4 KiB
Docker
90 lines
2.4 KiB
Docker
# FlaskFarm Docker Image v3.16
|
|
# Ubuntu/Debian + Python 3.14 for maximum performance
|
|
# Python 3.14.2 stable release
|
|
|
|
FROM python:3.14-slim
|
|
|
|
LABEL maintainer="yommi"
|
|
LABEL description="FlaskFarm with sc module support"
|
|
|
|
# Install system dependencies
|
|
# Install system dependencies and Korean locales
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
ffmpeg \
|
|
git \
|
|
curl \
|
|
gcc \
|
|
python3-dev \
|
|
wget \
|
|
gnupg \
|
|
libxml2-dev \
|
|
libxslt1-dev \
|
|
zlib1g-dev \
|
|
libjpeg-dev \
|
|
libnss3 \
|
|
libatk-bridge2.0-0 \
|
|
libxcomposite1 \
|
|
libxdamage1 \
|
|
libxrandr2 \
|
|
libgbm1 \
|
|
libasound2 \
|
|
libasound2-dev \
|
|
libpangocairo-1.0-0 \
|
|
libgtk-3-0 \
|
|
pkg-config \
|
|
libbz2-dev \
|
|
libreadline-dev \
|
|
libffi-dev \
|
|
libssl-dev \
|
|
build-essential \
|
|
locales \
|
|
&& sed -i -e 's/# ko_KR.UTF-8 UTF-8/ko_KR.UTF-8 UTF-8/' /etc/locale.gen \
|
|
&& locale-gen \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
ENV LC_ALL=ko_KR.UTF-8 \
|
|
LANG=ko_KR.UTF-8 \
|
|
LANGUAGE=ko_KR.UTF-8
|
|
|
|
# Install Google Chrome Stable (amd64) or Chromium (arm64)
|
|
ARG TARGETARCH
|
|
RUN if [ "$TARGETARCH" = "amd64" ]; then \
|
|
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | gpg --dearmor -o /usr/share/keyrings/google-chrome.gpg && \
|
|
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/google-chrome.gpg] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list && \
|
|
apt-get update && apt-get install -y google-chrome-stable; \
|
|
else \
|
|
apt-get update && apt-get install -y chromium chromium-driver; \
|
|
fi && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
# Set working directory to /root
|
|
WORKDIR /root
|
|
|
|
# Copy requirements first for layer caching
|
|
COPY ff_3_14_requirements.txt .
|
|
|
|
# Install Python dependencies (including camoufox/zendriver)
|
|
RUN grep -v "FlaskFarm" ff_3_14_requirements.txt > requirements_docker.txt \
|
|
&& pip install --no-cache-dir -r requirements_docker.txt
|
|
|
|
# Copy FlaskFarm application
|
|
COPY . .
|
|
RUN mkdir -p /data/plugins /data/db
|
|
COPY gommi.sh /root/gommi.sh
|
|
COPY config.yaml /data/config.yaml
|
|
RUN chmod +x /root/gommi.sh
|
|
|
|
# Environment variables
|
|
ENV PYTHONUNBUFFERED=1
|
|
ENV TZ=Asia/Seoul
|
|
|
|
# Health check (Matching EXPOSE port 9999)
|
|
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
|
|
CMD curl -f http://localhost:9999/ || exit 1
|
|
|
|
# Expose port
|
|
EXPOSE 9999/tcp
|
|
|
|
# Run FlaskFarm via gommi.sh in /root
|
|
ENTRYPOINT ["/root/gommi.sh"]
|