Update Dockerfile
Browse files- 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 |
-
#
|
|
|
|
| 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 |
-
#
|
| 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 |
-
#
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
# **新增:创建 Aria2 下载目录并设置权限**
|
| 37 |
RUN mkdir -p /opt/cloudreve/aria2_downloads && chmod -R 777 /opt/cloudreve/aria2_downloads
|
| 38 |
|
| 39 |
-
#
|
|
|
|
|
|
|
|
|
|
|
|
|
| 40 |
EXPOSE 5212
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 41 |
|
| 42 |
-
#
|
| 43 |
-
|
|
|
|
|
|
| 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 (不限制)
|