cfiles commited on
Commit
2bd58be
·
verified ·
1 Parent(s): a4357b3

Create Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +47 -0
Dockerfile ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM golang:1.21 AS builder
2
+
3
+ WORKDIR /app
4
+
5
+ # 下载并解压 Cloudreve 源代码 (根据需要调整版本)
6
+ RUN go install github.com/cloudreve/Cloudreve/v3@latest
7
+
8
+ # 设置 Cloudreve 环境变量
9
+ ENV CGO_ENABLED=0
10
+ ENV GOOS=linux
11
+ ENV GOARCH=amd64
12
+
13
+ # 构建 Cloudreve (如果在 final 阶段下载预构建的二进制文件,则可能不需要此步骤)
14
+ # RUN go build -o cloudreve main.go
15
+
16
+ FROM alpine:latest
17
+
18
+ WORKDIR /opt/cloudreve
19
+
20
+ ENV TZ=Asia/Shanghai
21
+
22
+ # 安装必要的依赖
23
+ RUN apk update && apk add --no-cache wget tar gzip python3 python3-venv python3-pip curl bash
24
+
25
+ # 下载最新的 Cloudreve 预构建二进制文件 (根据需要调整版本)
26
+ RUN wget https://github.com/cloudreve/Cloudreve/releases/latest/download/cloudreve_linux_amd64.tar.gz && \
27
+ tar -zxvf cloudreve_linux_amd64.tar.gz
28
+
29
+ # 创建数据目录
30
+ RUN mkdir -p /opt/cloudreve/data
31
+ RUN chmod -R 755 /opt/cloudreve
32
+
33
+ # 创建 Python 虚拟环境并安装 webdavclient3
34
+ ENV VIRTUAL_ENV=/opt/venv
35
+ RUN python3 -m venv $VIRTUAL_ENV
36
+ ENV PATH="$VIRTUAL_ENV/bin:$PATH"
37
+ RUN pip install --no-cache-dir requests webdavclient3
38
+
39
+ # 复制同步脚本
40
+ COPY sync_data.sh /opt/cloudreve/
41
+ RUN chmod +x /opt/cloudreve/sync_data.sh
42
+
43
+ # 暴露 Cloudreve 的默认端口 (根据需要调整)
44
+ EXPOSE 5212
45
+
46
+ # 设置运行 Cloudreve 的命令,包含同步脚本
47
+ CMD ["/bin/sh", "-c", "/opt/cloudreve/sync_data.sh & sleep 30 && ./cloudreve"]