pihn commited on
Commit
6962c23
·
verified ·
1 Parent(s): 7ff91d9

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +27 -21
Dockerfile CHANGED
@@ -1,39 +1,45 @@
1
- # 阶段一:使用最新的 Go 1.26 镜像拉取并编译
2
  FROM golang:1.26 AS builder
3
 
4
- WORKDIR /app
5
- # 克隆仓库源码
6
- RUN git clone https://github.com/router-for-me/CLIProxyAPI.git .
7
- # 下载依赖
 
 
 
 
8
  RUN go mod download
9
- # 关闭 CGO 并编译 cmd/server 目录下的代码
10
- RUN CGO_ENABLED=0 go build -o cli-proxy-api ./cmd/server
11
 
12
- # 阶段二:运行环境
 
 
 
13
  FROM debian:bookworm-slim
14
 
15
- # 安装运行基础证书和工具
16
- RUN apt-get update && apt-get install -y ca-certificates curl && rm -rf /var/lib/apt/lists/*
 
17
 
18
- # Hugging Face 强制要求使用非 root 用户运行应用 (UID 必须为 1000)
19
  RUN useradd -m -u 1000 user
 
 
 
 
20
  USER user
 
21
  ENV HOME=/home/user \
22
  PATH=/home/user/.local/bin:$PATH
23
 
24
- # 设置工作目录
25
  WORKDIR $HOME/app
26
 
27
- # 从构建阶段把静态编译好的程序复制过来
28
- COPY --from=builder --chown=user /app/cli-proxy-api $HOME/app/cli-proxy-api
 
29
 
30
- # 将当前仓库内的 config.yaml 复制进容器
31
- COPY --chown=user config.yaml $HOME/app/config.yaml
32
 
33
- # 暴露 Hugging Face 的默认访问端口
34
  EXPOSE 7860
35
 
36
-
37
- # 赋予执行权限并启动程序
38
- RUN chmod +x ./cli-proxy-api
39
- CMD ["./cli-proxy-api"]
 
1
+ # ===== 阶段一:编译 CLIProxyAPI =====
2
  FROM golang:1.26 AS builder
3
 
4
+ WORKDIR /src
5
+
6
+ RUN apt-get update && apt-get install -y --no-install-recommends \
7
+ git ca-certificates \
8
+ && rm -rf /var/lib/apt/lists/*
9
+
10
+ RUN git clone --depth=1 https://github.com/router-for-me/CLIProxyAPI.git .
11
+
12
  RUN go mod download
 
 
13
 
14
+ RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o cli-proxy-api ./cmd/server
15
+
16
+
17
+ # ===== 阶段二:运行环境 =====
18
  FROM debian:bookworm-slim
19
 
20
+ RUN apt-get update && apt-get install -y --no-install-recommends \
21
+ ca-certificates curl bash \
22
+ && rm -rf /var/lib/apt/lists/*
23
 
24
+ # Hugging Face Docker Space 推荐使用 UID 1000 的非 root 用户
25
  RUN useradd -m -u 1000 user
26
+
27
+ # 给 /data 一个兜底权限;真正的 /data 挂载会在运行时出现
28
+ RUN mkdir -p /data && chmod 777 /data
29
+
30
  USER user
31
+
32
  ENV HOME=/home/user \
33
  PATH=/home/user/.local/bin:$PATH
34
 
 
35
  WORKDIR $HOME/app
36
 
37
+ COPY --from=builder --chown=user /src/cli-proxy-api $HOME/app/cli-proxy-api
38
+ COPY --from=builder --chown=user /src/config.example.yaml $HOME/app/config.example.yaml
39
+ COPY --chown=user start.sh $HOME/app/start.sh
40
 
41
+ RUN chmod +x $HOME/app/cli-proxy-api $HOME/app/start.sh
 
42
 
 
43
  EXPOSE 7860
44
 
45
+ CMD ["./start.sh"]