clash-linux commited on
Commit
190c8f7
·
verified ·
1 Parent(s): 7c6f04a

Upload 14 files

Browse files
Files changed (1) hide show
  1. Dockerfile +32 -6
Dockerfile CHANGED
@@ -4,6 +4,25 @@ FROM python:3.9-alpine
4
  # 设置工作目录
5
  WORKDIR /app
6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
  # 安装系统依赖
8
  # 添加 yaml-dev 提供编译PyYAML所需的libyaml
9
  # 添加 unzip 用于解压 Yacd
@@ -28,8 +47,8 @@ RUN apk add --no-cache \
28
  # 设置时区为亚洲/上海
29
  ENV TZ=Asia/Shanghai
30
 
31
- # 创建必要的目录并设置权限(构建阶段就设置好权限)
32
- RUN mkdir -p ./clash_core ./subconverter ./data && \
33
  chmod -R 777 ./data && \
34
  chmod -R 777 ./clash_core && \
35
  chmod -R 777 ./subconverter
@@ -110,7 +129,8 @@ ENV PYTHONDONTWRITEBYTECODE=1 \
110
  FLASK_PORT=7860 \
111
  CLASH_PROXY_PORT=7890 \
112
  CLASH_API_PORT=9090 \
113
- PORT=7860
 
114
 
115
  # 复制应用代码和静态文件
116
  COPY app/ ./app/
@@ -119,9 +139,15 @@ COPY app/ ./app/
119
  COPY entrypoint.sh ./
120
  RUN chmod +x ./entrypoint.sh
121
 
122
- # 给脚本和二进制文件执行权限 (重复的chmod可能不需要,但在构建阶段设置更安全)
123
- RUN chmod +x ./clash_core/clash.meta-linux-amd64 || true
124
- RUN chmod +x ./subconverter/subconverter || true
 
 
 
 
 
 
125
 
126
  # 暴露端口
127
  EXPOSE $FLASK_PORT $CLASH_PROXY_PORT $CLASH_API_PORT
 
4
  # 设置工作目录
5
  WORKDIR /app
6
 
7
+ # 添加一个随机标签,强制破坏缓存
8
+ LABEL rebuild=$(date +%s)
9
+
10
+ # 创建data目录
11
+ RUN mkdir -p ./data
12
+
13
+ # 立即复制数据目录 - 这是最优先的
14
+ COPY data/ ./data/
15
+ # 添加验证命令
16
+ RUN echo "=== CHECKING CONFIG FILES IN /app/data ===" && \
17
+ ls -la ./data && \
18
+ if [ -f "./data/config.yaml" ]; then \
19
+ echo "CONFIG FILE FOUND AND COPIED SUCCESSFULLY!"; \
20
+ head -n 5 ./data/config.yaml; \
21
+ else \
22
+ echo "ERROR: CONFIG FILE NOT FOUND!"; \
23
+ exit 1; \
24
+ fi
25
+
26
  # 安装系统依赖
27
  # 添加 yaml-dev 提供编译PyYAML所需的libyaml
28
  # 添加 unzip 用于解压 Yacd
 
47
  # 设置时区为亚洲/上海
48
  ENV TZ=Asia/Shanghai
49
 
50
+ # 创建必要的目录并设置权限
51
+ RUN mkdir -p ./clash_core ./subconverter && \
52
  chmod -R 777 ./data && \
53
  chmod -R 777 ./clash_core && \
54
  chmod -R 777 ./subconverter
 
129
  FLASK_PORT=7860 \
130
  CLASH_PROXY_PORT=7890 \
131
  CLASH_API_PORT=9090 \
132
+ PORT=7860 \
133
+ USE_LOCAL_CONFIG=true
134
 
135
  # 复制应用代码和静态文件
136
  COPY app/ ./app/
 
139
  COPY entrypoint.sh ./
140
  RUN chmod +x ./entrypoint.sh
141
 
142
+ # 再次检查配置文件是否存在 - 确保没被覆盖
143
+ RUN echo "=== FINAL CHECK FOR CONFIG FILES ===" && \
144
+ ls -la ./data && \
145
+ if [ -f "./data/config.yaml" ]; then \
146
+ echo "CONFIG FILE STILL EXISTS - GOOD!"; \
147
+ else \
148
+ echo "ERROR: CONFIG FILE MISSING AFTER APP COPY!"; \
149
+ exit 1; \
150
+ fi
151
 
152
  # 暴露端口
153
  EXPOSE $FLASK_PORT $CLASH_PROXY_PORT $CLASH_API_PORT