File size: 3,447 Bytes
21f54af a5a6d82 21e066f 21f54af a5a6d82 21e066f 21f54af a5a6d82 21e066f 21f54af 0bc7fa3 badbcc9 0bc7fa3 21e066f 21f54af 6fe6747 21f54af 21e066f 21f54af 9e9f51a 0bc7fa3 21e066f 21f54af ec83cb3 21e066f 21f54af 0bc7fa3 21e066f 21f54af 0bc7fa3 21e066f 21f54af badbcc9 21f54af a5a6d82 21f54af 3eca17a 21f54af 870cbab 21f54af 3eca17a c58fc2c 21f54af a5a12a2 870cbab |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# 使用最新的 Alpine Linux 作为基础镜像
FROM alpine:latest
# 设置工作目录
WORKDIR /opt/cloudreve
# 设置时区
ENV TZ=Asia/Shanghai
# 更新包列表并安装必要的软件包:wget, unzip, python3, pip, bash, tar, gzip, jq, curl, aria2
# 清理 apk 缓存以减小镜像体积
RUN apk update && \
apk add --no-cache wget unzip python3 py3-pip bash tar gzip jq curl aria2 && \
rm -rf /var/cache/apk/*
# 下载并解压 Cloudreve 3.8.3
RUN wget -O cloudreve.tar.gz "https://github.com/cloudreve/Cloudreve/releases/download/3.8.3/cloudreve_3.8.3_linux_amd64.tar.gz" && \
tar -zxvf cloudreve.tar.gz -C /opt/cloudreve/ && \
rm cloudreve.tar.gz && \
# 确保 Cloudreve 可执行文件有执行权限
chmod +x /opt/cloudreve/cloudreve
# 创建虚拟环境 (推荐)
RUN python3 -m venv /opt/venv
ENV VIRTUAL_ENV=/opt/venv
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
# 安装 huggingface_hub Python 库
RUN pip install --no-cache-dir huggingface_hub cryptography
# 复制同步脚本到容器中
COPY sync_data.sh /opt/cloudreve/
# 给予同步脚本执行权限
RUN chmod +x /opt/cloudreve/sync_data.sh
# **创建 Aria2 下载目录并设置权限**
# 注意:777 权限过于宽松,但在简单场景下可以避免权限问题。生产环境建议使用更严格的权限管理。
RUN mkdir -p /opt/cloudreve/aria2_downloads && chmod -R 777 /opt/cloudreve/aria2_downloads
# **确保 /opt/cloudreve 目录及其内容具有必要的权限**
# Cloudreve 进程和 Aria2 可能需要写入配置文件、数据库、日志等
RUN chmod -R 777 /opt/cloudreve/
# 暴露 Cloudreve 使用的端口
EXPOSE 5212
# Aria2 RPC 端口 (如果需要从外部访问,但通常不需要)
# EXPOSE 6800
# 设置启动命令
# 1. 后台启动 Aria2,使用优化后的参数
# 2. 前台运行 sync_data.sh 脚本,该脚本会处理备份/恢复逻辑,并在最后启动 Cloudreve
CMD aria2c --enable-rpc --rpc-listen-port=6800 --rpc-listen-all=true --rpc-allow-origin-all \
--daemon=true --enable-dht=true \
--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" \
-s 64 \
-x 16 \
-d /opt/cloudreve/aria2_downloads \
--max-concurrent-downloads=5 \
--max-overall-download-limit=0 \
--max-download-limit=0 \
--max-overall-upload-limit=5M \
--max-upload-limit=1M \
# --- 修改日志级别为 debug ---
--console-log-level=debug \
# --------------------------
--rpc-secret=112325 & \
/opt/cloudreve/sync_data.sh
# 注意: --rpc-secret=YOUR_RPC_SECRET 是可选的。
# 如果你在 CMD 中添加了这个参数 (例如 --rpc-secret=mysecret),
# 那么你必须在 Cloudreve 后台 -> 管理面板 -> 参数设置 -> 离线下载 -> RPC 授权令牌 中填入完全相同的密钥 (mysecret)。
# 如果你不打算使用 RPC 密钥,请从上面的 CMD 命令中移除 --rpc-secret=YOUR_RPC_SECRET 部分,
# 并确保 Cloudreve 后台的 RPC 授权令牌字段是空的。
# 你可以根据需要调整 --max-overall-upload-limit 和 --max-upload-limit 的值,或者设为 0 (不限制)。 |