flzta commited on
Commit
21f54af
·
verified ·
1 Parent(s): b7128d1

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +44 -17
Dockerfile CHANGED
@@ -1,43 +1,70 @@
 
1
  FROM alpine:latest
2
 
 
3
  WORKDIR /opt/cloudreve
4
 
 
5
  ENV TZ=Asia/Shanghai
6
 
7
- # 下载 Cloudreve 3.8.3
 
8
  RUN apk update && \
9
  apk add --no-cache wget unzip python3 py3-pip bash tar gzip jq curl aria2 && \
10
  rm -rf /var/cache/apk/*
11
 
12
- # 创建 Cloudreve 数据目录
13
- RUN mkdir -p /opt/cloudreve/data
14
-
15
  RUN wget -O cloudreve.tar.gz "https://github.com/cloudreve/Cloudreve/releases/download/3.8.3/cloudreve_3.8.3_linux_amd64.tar.gz" && \
16
- tar -zxvf cloudreve.tar.gz && \
17
- rm cloudreve.tar.gz
 
 
18
 
19
- # 创建虚拟环境 (可选, 但推荐)
20
  RUN python3 -m venv /opt/venv
21
  ENV VIRTUAL_ENV=/opt/venv
22
  ENV PATH="$VIRTUAL_ENV/bin:$PATH"
23
 
24
- # 安装 huggingface_hub
25
  RUN pip install --no-cache-dir huggingface_hub cryptography
26
 
27
- # 复制同步脚本
28
  COPY sync_data.sh /opt/cloudreve/
29
 
30
- # 设置同步脚本执行权限
31
  RUN chmod +x /opt/cloudreve/sync_data.sh
32
 
33
- # **确保 /opt/cloudreve 目录及其内容有读写执行权限**
34
- RUN chmod -R 777 /opt/cloudreve/
35
-
36
- # **新增:创建 Aria2 下载目录并设置权限**
37
  RUN mkdir -p /opt/cloudreve/aria2_downloads && chmod -R 777 /opt/cloudreve/aria2_downloads
38
 
39
- # 暴露 Cloudreve 端口
 
 
 
 
40
  EXPOSE 5212
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
41
 
42
- # 设置启动命令 to run Cloudreve in foreground and sync script in background, and start aria2 with increased connections and splits
43
- CMD aria2c --enable-rpc --rpc-listen-port=6800 --daemon --enable-dht=true --bt-tracker="udp://tracker.coppersurfer.tk:6969/announce,http://tracker.internetwarriors.net:1337/announce,udp://tracker.opentrackr.org:1337/announce" -x 16 -s 8 & /opt/cloudreve/cloudreve -c /opt/cloudreve/config.ini & /opt/cloudreve/sync_data.sh
 
 
1
+ # 使用最新的 Alpine Linux 作为基础镜像
2
  FROM alpine:latest
3
 
4
+ # 设置工作目录
5
  WORKDIR /opt/cloudreve
6
 
7
+ # 设置时区
8
  ENV TZ=Asia/Shanghai
9
 
10
+ # 更新包列表并安装必要的软件包:wget, unzip, python3, pip, bash, tar, gzip, jq, curl, aria2
11
+ # 清理 apk 缓存以减小镜像体积
12
  RUN apk update && \
13
  apk add --no-cache wget unzip python3 py3-pip bash tar gzip jq curl aria2 && \
14
  rm -rf /var/cache/apk/*
15
 
16
+ # 下载并解压 Cloudreve 3.8.3
 
 
17
  RUN wget -O cloudreve.tar.gz "https://github.com/cloudreve/Cloudreve/releases/download/3.8.3/cloudreve_3.8.3_linux_amd64.tar.gz" && \
18
+ tar -zxvf cloudreve.tar.gz -C /opt/cloudreve/ && \
19
+ rm cloudreve.tar.gz && \
20
+ # 确保 Cloudreve 可执行文件有执行权限
21
+ chmod +x /opt/cloudreve/cloudreve
22
 
23
+ # 创建虚拟环境 (推荐)
24
  RUN python3 -m venv /opt/venv
25
  ENV VIRTUAL_ENV=/opt/venv
26
  ENV PATH="$VIRTUAL_ENV/bin:$PATH"
27
 
28
+ # 安装 huggingface_hub Python 库
29
  RUN pip install --no-cache-dir huggingface_hub cryptography
30
 
31
+ # 复制同步脚本到容器中
32
  COPY sync_data.sh /opt/cloudreve/
33
 
34
+ # 给予同步脚本执行权限
35
  RUN chmod +x /opt/cloudreve/sync_data.sh
36
 
37
+ # **创建 Aria2 下载目录并设置权限**
38
+ # 注意:777 权限过于宽松,但在简单场景下可以避免权限问题。生产环境建议使用更严格的权限管理。
 
 
39
  RUN mkdir -p /opt/cloudreve/aria2_downloads && chmod -R 777 /opt/cloudreve/aria2_downloads
40
 
41
+ # **确保 /opt/cloudreve 目录及其内容具有必要的权限**
42
+ # Cloudreve 进程和 Aria2 可能需要写入配置文件、数据库、日志等
43
+ RUN chmod -R 777 /opt/cloudreve/
44
+
45
+ # 暴露 Cloudreve 使用的端口
46
  EXPOSE 5212
47
+ # Aria2 RPC 端口 (如果需要从外部访问,但通常不需要)
48
+ # EXPOSE 6800
49
+
50
+ # 设置启动命令
51
+ # 1. 后台启动 Aria2,使用优化后的参数
52
+ # 2. 前台运行 sync_data.sh 脚本,该脚本会处理备份/恢复逻辑,并在最后启动 Cloudreve
53
+ CMD aria2c --enable-rpc --rpc-listen-port=6800 --rpc-listen-all=true --rpc-allow-origin-all \
54
+ --daemon=true --enable-dht=true --bt-enable-pex=true \
55
+ --bt-tracker="udp://tracker.opentrackr.org:1337/announce,udp://tracker.openbittorrent.com:6969/announce,udp://tracker.torrent.eu.org:451/announce,udp://tracker.coppersurfer.tk:6969/announce,udp://tracker.dler.org:6969/announce,udp://tracker.leechers-paradise.org:6969/announce,udp://tracker.moeking.me:6969/announce" \
56
+ -s 64 \
57
+ -x 16 \
58
+ -d /opt/cloudreve/aria2_downloads \
59
+ --max-concurrent-downloads=5 \
60
+ --max-overall-download-limit=0 \
61
+ --max-download-limit=0 \
62
+ --max-overall-upload-limit=5M \
63
+ --max-upload-limit=1M \
64
+ --console-log-level=warn \
65
+ --rpc-secret=YOUR_RPC_SECRET & \
66
+ /opt/cloudreve/sync_data.sh
67
 
68
+ # 注意: --rpc-secret=YOUR_RPC_SECRET 是可选的,如果添加了,需要在 Cloudreve 后台配置相同的密钥。
69
+ # 如果不设置 RPC 密钥,请移除该参数,并在 Cloudreve 后台确保 RPC 密钥字段为空。
70
+ # 你可以调整 --max-overall-upload-limit 和 --max-upload-limit 的值,或者设为 0 (不限制)