Update Dockerfile
Browse files- Dockerfile +27 -21
Dockerfile
CHANGED
|
@@ -1,39 +1,45 @@
|
|
| 1 |
-
# 阶段一:
|
| 2 |
FROM golang:1.26 AS builder
|
| 3 |
|
| 4 |
-
WORKDIR /
|
| 5 |
-
|
| 6 |
-
RUN
|
| 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 |
-
|
|
|
|
| 17 |
|
| 18 |
-
# Hugging Face
|
| 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 /
|
|
|
|
| 29 |
|
| 30 |
-
|
| 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"]
|
|
|
|
|
|
|
|
|