gallyg commited on
Commit
16dd1b6
·
verified ·
1 Parent(s): 48e102f

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +38 -13
Dockerfile CHANGED
@@ -1,31 +1,56 @@
1
  # syntax=docker/dockerfile:1.7
2
 
 
3
  FROM weishaw/sub2api:latest AS sub2api_bin
4
 
5
  FROM debian:bookworm-slim
6
 
7
- ENV DEBIAN_FRONTEND=noninteractive LANG=C.UTF-8 LC_ALL=C.UTF-8 PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1
8
-
9
- 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 gosu tini && rm -rf /var/lib/apt/lists/*
10
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
  RUN useradd -m -u 1000 user
12
 
13
- ENV HOME=/home/user APP_HOME=/home/user/app PGDATA=/home/user/pgdata REDIS_DIR=/home/user/redis SUB2API_DATA_DIR=/home/user/app/data VENV_PATH=/home/user/venv PATH=/home/user/venv/bin:/home/user/.local/bin:$PATH
 
 
 
 
 
 
14
 
15
- WORKDIR ${APP_HOME}
16
 
17
  COPY --from=sub2api_bin /app/sub2api /usr/local/bin/sub2api
18
 
19
- COPY --chown=user:user supervisord.conf /etc/supervisor/conf.d/supervisord.conf
20
  COPY --chown=user:user start.sh /usr/local/bin/start.sh
21
- COPY --chown=user:user backup_worker.sh /usr/local/bin/backup_worker.sh
22
- COPY --chown=user:user backup_to_dataset.py ${APP_HOME}/backup_to_dataset.py
23
- COPY --chown=user:user requirements.txt ${APP_HOME}/requirements.txt
24
- COPY --chown=user:user README.md ${APP_HOME}/README.space.md
25
 
26
- RUN chmod +x /usr/local/bin/start.sh /usr/local/bin/backup_worker.sh && mkdir -p ${APP_HOME} ${SUB2API_DATA_DIR} ${PGDATA} ${REDIS_DIR} /var/log/supervisor ${VENV_PATH} && chown -R user:user ${HOME} ${APP_HOME} ${PGDATA} ${REDIS_DIR} ${SUB2API_DATA_DIR} /var/log/supervisor ${VENV_PATH} && python3 -m venv ${VENV_PATH} && ${VENV_PATH}/bin/pip install --no-cache-dir --upgrade pip setuptools wheel && ${VENV_PATH}/bin/pip install --no-cache-dir -r ${APP_HOME}/requirements.txt
 
 
 
 
27
 
28
  EXPOSE 8080
29
 
30
  USER user
31
- ENTRYPOINT ["/usr/bin/tini", "--", "/usr/local/bin/start.sh"]
 
1
  # syntax=docker/dockerfile:1.7
2
 
3
+ # 从官方镜像中提取 sub2api 二进制
4
  FROM weishaw/sub2api:latest AS sub2api_bin
5
 
6
  FROM debian:bookworm-slim
7
 
8
+ ENV DEBIAN_FRONTEND=noninteractive \
9
+ LANG=C.UTF-8 \
10
+ LC_ALL=C.UTF-8 \
11
+ PYTHONDONTWRITEBYTECODE=1 \
12
+ PYTHONUNBUFFERED=1
13
+
14
+ RUN apt-get update && apt-get install -y --no-install-recommends \
15
+ bash \
16
+ ca-certificates \
17
+ curl \
18
+ procps \
19
+ supervisor \
20
+ redis-server \
21
+ postgresql \
22
+ postgresql-client \
23
+ python3 \
24
+ python3-pip \
25
+ python3-venv \
26
+ tini \
27
+ && rm -rf /var/lib/apt/lists/*
28
+
29
+ # HF Docker 空间 运行时用户建议用 uid 1000
30
  RUN useradd -m -u 1000 user
31
 
32
+ ENV HOME=/home/user \
33
+ APP_HOME=/app \
34
+ PGDATA=/app/pgdata \
35
+ REDIS_DIR=/app/redis \
36
+ SUB2API_DATA_DIR=/app/data \
37
+ VENV_PATH=/app/venv \
38
+ PATH=/app/venv/bin:/home/user/.local/bin:$PATH
39
 
40
+ WORKDIR /app
41
 
42
  COPY --from=sub2api_bin /app/sub2api /usr/local/bin/sub2api
43
 
 
44
  COPY --chown=user:user start.sh /usr/local/bin/start.sh
45
+ COPY --chown=user:user supervisord.conf /etc/supervisor/conf.d/supervisord.conf
 
 
 
46
 
47
+ RUN chmod +x /usr/local/bin/start.sh \
48
+ && mkdir -p /app /app/data /app/data/logs /app/data/sora /app/pgdata /app/redis /app/venv /var/log/supervisor \
49
+ && chown -R user:user /app /var/log/supervisor \
50
+ && python3 -m venv /app/venv \
51
+ && /app/venv/bin/pip install --no-cache-dir --upgrade pip setuptools wheel
52
 
53
  EXPOSE 8080
54
 
55
  USER user
56
+ ENTRYPOINT ["/usr/bin/tini", "--", "/usr/local/bin/start.sh"]