ZSCGR commited on
Commit
9dc20be
·
verified ·
1 Parent(s): a84ddba

Create Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +73 -0
Dockerfile ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # 使用官方Ubuntu基础镜像
2
+ FROM ubuntu:22.04
3
+
4
+ # 设置构建参数
5
+ ARG TZ=Asia/Shanghai
6
+ ARG APP_USER=suwayomi
7
+ ARG APP_HOME=/home/suwayomi
8
+ ARG JAVA_VERSION=21
9
+
10
+ # 设置环境变量
11
+ ENV TZ=${TZ} \
12
+ JAVA_HOME=/usr/lib/jvm/java-${JAVA_VERSION}-openjdk-amd64 \
13
+ APP_USER=${APP_USER} \
14
+ APP_HOME=${APP_HOME} \
15
+ VIRTUAL_ENV=${APP_HOME}/venv \
16
+ PATH="${APP_HOME}/venv/bin:${JAVA_HOME}/bin:${PATH}" \
17
+ LANG=C.UTF-8 \
18
+ LC_ALL=C.UTF-8
19
+
20
+ # 安装依赖并配置环境
21
+ RUN set -eux; \
22
+ # 设置时区
23
+ ln -snf /usr/share/zoneinfo/$TZ /etc/localtime; \
24
+ echo $TZ > /etc/timezone; \
25
+ \
26
+ # 更新包索引并安装基本依赖
27
+ apt-get update; \
28
+ apt-get install -y --no-install-recommends \
29
+ openjdk-${JAVA_VERSION}-jdk \
30
+ ca-certificates \
31
+ curl \
32
+ unzip \
33
+ bash \
34
+ jq \
35
+ python3 \
36
+ python3-pip \
37
+ python3-venv \
38
+ dos2unix; \
39
+ \
40
+ # 清理APT缓存以减小镜像体积
41
+ apt-get clean; \
42
+ rm -rf /var/lib/apt/lists/*; \
43
+ \
44
+ # 更新CA证书
45
+ update-ca-certificates; \
46
+ \
47
+ # 创建应用用户和目录
48
+ useradd -r -u 1000 -m -d $APP_HOME -s /bin/bash $APP_USER; \
49
+ chown -R $APP_USER:$APP_USER $APP_HOME; \
50
+ \
51
+ # 创建Python虚拟环境并安装依赖
52
+ python3 -m venv $VIRTUAL_ENV; \
53
+ pip install --no-cache-dir --upgrade pip setuptools wheel; \
54
+ pip install --no-cache-dir huggingface_hub; \
55
+ \
56
+ # 下载 Suwayomi-Server 最新 release
57
+ curl -L -o $APP_HOME/Suwayomi-Server.jar \
58
+ $(curl -s https://api.github.com/repos/Suwayomi/Suwayomi-Server/releases/latest | jq -r '.assets[] | select(.name | test("Suwayomi-Server.*\\.jar$")) | .browser_download_url')
59
+
60
+ # 设置工作目录和用户
61
+ WORKDIR $APP_HOME
62
+ USER $APP_USER
63
+
64
+ # 复制并设置脚本权限
65
+ COPY --chown=${APP_USER}:${APP_USER} sync_data.sh ./
66
+ RUN dos2unix sync_data.sh && chmod +x sync_data.sh
67
+
68
+ # 暴露服务端口
69
+ EXPOSE 4567
70
+
71
+ # 使用exec形式的ENTRYPOINT以确保信号正确传递
72
+ ENTRYPOINT ["/bin/bash", "-c"]
73
+ CMD ["./sync_data.sh && exec java -jar ./Suwayomi-Server.jar"]