USGCC commited on
Commit
8d24f8e
·
verified ·
1 Parent(s): f0c3fe8

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +8 -29
Dockerfile CHANGED
@@ -1,44 +1,23 @@
1
- # 使用基础镜像
2
  FROM ghcr.io/tbphp/gpt-load:latest
3
 
4
- # 切换到 root 用户以执行需要权限的操作
5
- USER root
6
-
7
- # 安装 pcre2
8
  RUN apk add --no-cache pcre2
9
 
10
- # 从 nginx:alpine 复制 Nginx 相关文件
11
  COPY --from=nginx:alpine /etc/nginx /etc/nginx
12
  COPY --from=nginx:alpine /usr/sbin/nginx /usr/sbin/nginx
13
 
14
- # 复制自定义 Nginx 配置文件
15
  COPY nginx.conf /etc/nginx/nginx.conf
16
 
17
- # 创建 Nginx 所需目录并设置适当权限
18
- RUN mkdir -p /var/log/nginx /var/cache/nginx /var/run && \
19
- chown -R nobody:nobody /var/log/nginx /var/cache/nginx /var/run && \
20
- chmod -R 755 /var/log/nginx /var/cache/nginx /var/run
 
 
21
 
22
- # 设置工作目录
23
  WORKDIR /data
24
 
25
- # 设置工作目录权限(避免过于宽松的 777)
26
- RUN chown -R nobody:nobody /data && \
27
- chmod -R 755 /data
28
-
29
- # 暴露端口
30
  EXPOSE 3001
31
 
32
- # 检查 /gpt-load 是否存在并可执行
33
- RUN if [ -f /gpt-load ]; then \
34
- chmod +x /gpt-load; \
35
- else \
36
- echo "ERROR: /gpt-load not found in base image"; \
37
- exit 1; \
38
- fi
39
-
40
- # 切换到非 root 用户(nobody)运行
41
- USER nobody
42
 
43
- # 使用 exec 形式运行 Nginx 和 gpt-load,确保信号传递正确
44
- ENTRYPOINT ["sh", "-c", "exec nginx -g 'daemon off;' & exec /gpt-load"]
 
 
1
  FROM ghcr.io/tbphp/gpt-load:latest
2
 
 
 
 
 
3
  RUN apk add --no-cache pcre2
4
 
 
5
  COPY --from=nginx:alpine /etc/nginx /etc/nginx
6
  COPY --from=nginx:alpine /usr/sbin/nginx /usr/sbin/nginx
7
 
 
8
  COPY nginx.conf /etc/nginx/nginx.conf
9
 
10
+ RUN mkdir -p /var/log/nginx && \
11
+ mkdir -p /var/cache/nginx && \
12
+ mkdir -p /var/run && \
13
+ chmod -R 777 /var/log/nginx && \
14
+ chmod -R 777 /var/cache/nginx && \
15
+ chmod -R 777 /var/run
16
 
 
17
  WORKDIR /data
18
 
 
 
 
 
 
19
  EXPOSE 3001
20
 
21
+ RUN chmod 777 -R /data
 
 
 
 
 
 
 
 
 
22
 
23
+ ENTRYPOINT ["sh", "-c", "nginx"]