clash-linux commited on
Commit
0e697fc
·
verified ·
1 Parent(s): fd02cb6

Upload 11 files

Browse files
Files changed (2) hide show
  1. Dockerfile +67 -64
  2. requirements.txt +4 -4
Dockerfile CHANGED
@@ -1,65 +1,68 @@
1
- # 使用官方Python 3.9 Alpine作为基础镜像(轻量级)
2
- FROM python:3.9-alpine
3
-
4
- # 设置工作目录
5
- WORKDIR /app
6
-
7
- # 安装系统依赖
8
- RUN apk add --no-cache \
9
- curl \
10
- ca-certificates \
11
- tzdata \
12
- tar \
13
- gzip \
14
- # 添加编译PyYAML所需的依赖
15
- gcc \
16
- musl-dev \
17
- python3-dev \
18
- yaml-dev
19
-
20
- # 设置时区为亚洲/上海
21
- ENV TZ=Asia/Shanghai
22
-
23
- # 创建必要的目录
24
- RUN mkdir -p ./clash_core ./subconverter ./data
25
-
26
- # 下载并安装Clash Meta (替代Clash Core,功能更强大)
27
- RUN curl -L -o /tmp/clash-meta.gz "https://github.com/MetaCubeX/Clash.Meta/releases/download/v1.16.0/clash.meta-linux-amd64-v1.16.0.gz" && \
28
- gunzip -c /tmp/clash-meta.gz > ./clash_core/clash-linux-amd64 && \
29
- chmod +x ./clash_core/clash-linux-amd64 && \
30
- rm /tmp/clash-meta.gz
31
-
32
- # 下载并安装subconverter
33
- RUN curl -L -o /tmp/subconverter.tar.gz "https://github.com/tindy2013/subconverter/releases/download/v0.7.2/subconverter_linux64.tar.gz" && \
34
- tar -xzf /tmp/subconverter.tar.gz -C /tmp && \
35
- cp -R /tmp/subconverter/* ./subconverter/ && \
36
- chmod +x ./subconverter/subconverter && \
37
- rm -rf /tmp/subconverter*
38
-
39
- # 复制Python依赖列表
40
- COPY requirements.txt ./
41
-
42
- # 安装Python依赖
43
- RUN pip install --no-cache-dir -r requirements.txt
44
-
45
- # 清理不再需要的构建依赖,减小镜像大小
46
- RUN apk del gcc musl-dev python3-dev yaml-dev
47
-
48
- # 设置环境变量
49
- ENV PYTHONDONTWRITEBYTECODE=1 \
50
- PYTHONUNBUFFERED=1 \
51
- FLASK_APP=app.main \
52
- FLASK_ENV=production
53
-
54
- # 复制应用代码
55
- COPY app/ ./app/
56
-
57
- # 复制启动脚本并赋予执行权限
58
- COPY entrypoint.sh ./
59
- RUN chmod +x ./entrypoint.sh
60
-
61
- # 暴露单一端口 (Hugging Face Spaces要求)
62
- EXPOSE 7860
63
-
64
- # 使用entrypoint脚本启动应用
 
 
 
65
  ENTRYPOINT ["/app/entrypoint.sh"]
 
1
+ # 使用官方Python 3.9 Alpine作为基础镜像(轻量级)
2
+ FROM python:3.9-alpine
3
+
4
+ # 设置工作目录
5
+ WORKDIR /app
6
+
7
+ # 安装系统依赖
8
+ # 添加 build-base (包含gcc, make等) 和 python3-dev, musl-dev, libffi-dev 用于编译
9
+ RUN apk add --no-cache \
10
+ curl \
11
+ ca-certificates \
12
+ tzdata \
13
+ tar \
14
+ gzip \
15
+ build-base \
16
+ python3-dev \
17
+ musl-dev \
18
+ libffi-dev
19
+
20
+ # 设置时区为亚洲/上海
21
+ ENV TZ=Asia/Shanghai
22
+
23
+ # 创建必要的目录
24
+ RUN mkdir -p ./clash_core ./subconverter ./data
25
+
26
+ # 下载并安装Clash Meta (替代Clash Core,功能更强大)
27
+ RUN curl -L -o /tmp/clash-meta.gz "https://github.com/MetaCubeX/Clash.Meta/releases/download/v1.16.0/clash.meta-linux-amd64-v1.16.0.gz" && \
28
+ gunzip -c /tmp/clash-meta.gz > ./clash_core/clash-linux-amd64 && \
29
+ chmod +x ./clash_core/clash-linux-amd64 && \
30
+ rm /tmp/clash-meta.gz
31
+
32
+ # 下载并安装subconverter
33
+ RUN curl -L -o /tmp/subconverter.tar.gz "https://github.com/tindy2013/subconverter/releases/download/v0.7.2/subconverter_linux64.tar.gz" && \
34
+ tar -xzf /tmp/subconverter.tar.gz -C /tmp && \
35
+ cp -R /tmp/subconverter/* ./subconverter/ && \
36
+ chmod +x ./subconverter/subconverter && \
37
+ rm -rf /tmp/subconverter*
38
+
39
+ # 复制Python依赖列表
40
+ COPY requirements.txt ./
41
+
42
+ # 升级 pip
43
+ RUN pip install --upgrade pip
44
+
45
+ # 安装Python依赖
46
+ RUN pip install --no-cache-dir -r requirements.txt
47
+
48
+ # 可选:删除构建依赖以减小镜像体积
49
+ # RUN apk del build-base python3-dev musl-dev libffi-dev
50
+
51
+ # 设置环境变量
52
+ ENV PYTHONDONTWRITEBYTECODE=1 \
53
+ PYTHONUNBUFFERED=1 \
54
+ FLASK_APP=app.main \
55
+ FLASK_ENV=production
56
+
57
+ # 复制应用代码
58
+ COPY app/ ./app/
59
+
60
+ # 复制启动脚本并赋予执行权限
61
+ COPY entrypoint.sh ./
62
+ RUN chmod +x ./entrypoint.sh
63
+
64
+ # 暴露单一端口 (Hugging Face Spaces要求)
65
+ EXPOSE 7860
66
+
67
+ # 使用entrypoint脚本启动应用
68
  ENTRYPOINT ["/app/entrypoint.sh"]
requirements.txt CHANGED
@@ -1,4 +1,4 @@
1
- flask==2.0.1
2
- gunicorn==20.1.0
3
- requests==2.26.0
4
- pyyaml==5.4.1
 
1
+ flask==2.0.1
2
+ gunicorn==20.1.0
3
+ requests==2.26.0
4
+ pyyaml==6.0