sub / Dockerfile
gallyg's picture
Update Dockerfile
8c5ee66 verified
# syntax=docker/dockerfile:1.7
# 从官方镜像中提取 sub2api 二进制
FROM weishaw/sub2api:latest AS sub2api_bin
FROM debian:bookworm-slim
ENV DEBIAN_FRONTEND=noninteractive \
LANG=C.UTF-8 \
LC_ALL=C.UTF-8 \
PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1
RUN apt-get update && apt-get install -y --no-install-recommends \
bash \
ca-certificates \
curl \
procps \
supervisor \
redis-server \
postgresql \
postgresql-client \
python3 \
python3-pip \
python3-venv \
tini \
&& rm -rf /var/lib/apt/lists/*
# HF Docker 空间 运行时用户建议用 uid 1000
RUN useradd -m -u 1000 user
ENV HOME=/home/user \
APP_HOME=/app \
PGDATA=/app/pgdata \
REDIS_DIR=/app/redis \
SUB2API_DATA_DIR=/app/data \
VENV_PATH=/app/venv \
PATH=/app/venv/bin:/home/user/.local/bin:$PATH
WORKDIR /app
COPY --from=sub2api_bin /app/sub2api /usr/local/bin/sub2api
COPY --chown=user:user start.sh /usr/local/bin/start.sh
COPY --chown=user:user supervisord.conf /etc/supervisor/conf.d/supervisord.conf
#
COPY --chown=user:user backup_to_dataset.py /app/backup_to_dataset.py
COPY --chown=user:user backup_worker.sh /usr/local/bin/backup_worker.sh
COPY --chown=user:user requirements.txt /app/requirements.txt
#把 config.yaml 放进你的仓库,然后在 Dockerfile 复制到 /app/data/config.yaml
COPY --chown=user:user config.override.yaml /app/config.override.yaml
COPY --chown=user:user backup_to_dataset.py /app/backup_to_dataset.py
COPY --chown=user:user restore_from_dataset.py /app/restore_from_dataset.py
COPY --chown=user:user backup_worker.sh /usr/local/bin/backup_worker.sh
COPY --chown=user:user requirements.txt /app/requirements.txt
RUN chmod +x /usr/local/bin/backup_worker.sh
RUN chmod +x /usr/local/bin/start.sh /usr/local/bin/backup_worker.sh \
&& mkdir -p /app /app/data /app/data/logs /app/data/sora /app/pgdata /app/redis /app/venv /var/log/supervisor \
&& chown -R user:user /app /var/log/supervisor \
&& python3 -m venv /app/venv \
&& /app/venv/bin/pip install --no-cache-dir --upgrade pip setuptools wheel \
&& /app/venv/bin/pip install --no-cache-dir -r /app/requirements.txt
#
RUN chmod +x /usr/local/bin/start.sh \
&& mkdir -p /app /app/data /app/data/logs /app/data/sora /app/pgdata /app/redis /app/venv /var/log/supervisor \
&& chown -R user:user /app /var/log/supervisor \
&& python3 -m venv /app/venv \
&& /app/venv/bin/pip install --no-cache-dir --upgrade pip setuptools wheel
EXPOSE 8080
USER user
ENTRYPOINT ["/usr/bin/tini", "--", "/usr/local/bin/start.sh"]