Download Dockerfile from ckst/ca: direct link, hf CLI and curl.
- Browser
- Download file 1.67 kB
-
https://huggingface.co/spaces/ckst/ca/resolve/main/Dockerfile
- Command line
-
hf download hf://spaces/ckst/ca/Dockerfile
-
curl -L -o Dockerfile https://huggingface.co/spaces/ckst/ca/resolve/main/Dockerfile
1.67 kB
| # 第一阶段:构建前端 | |
| FROM node:18.19.0-alpine as frontend-builder | |
| WORKDIR /app | |
| # 复制并解压源码 | |
| COPY chat-api-main.zip . | |
| RUN apk add --no-cache unzip && \ | |
| unzip chat-api-main.zip && \ | |
| rm chat-api-main.zip | |
| # 构建 web-admin | |
| WORKDIR /app/chat-api-main/web-admin | |
| RUN npm install && \ | |
| npm run build | |
| # 构建 web-user | |
| WORKDIR /app/chat-api-main/web-user | |
| RUN npm install && \ | |
| npm run build | |
| # 第二阶段:构建后端 | |
| FROM golang:latest AS backend-builder | |
| # 设置 Go 环境变量 | |
| ENV GO111MODULE=on | |
| ENV GOPROXY=https://goproxy.cn,direct | |
| ENV GOSUMDB=off | |
| # 设置工作目录 | |
| WORKDIR /go/src/one-api | |
| # 复制源码 | |
| COPY chat-api-main.zip . | |
| RUN apt-get update && apt-get install -y unzip && \ | |
| unzip chat-api-main.zip && \ | |
| mv chat-api-main/* . && \ | |
| rm -rf chat-api-main chat-api-main.zip | |
| # 复制前端构建产物 | |
| COPY --from=frontend-builder /app/chat-api-main/web-admin/build ./web-admin/build | |
| COPY --from=frontend-builder /app/chat-api-main/web-user/build ./web-user/build | |
| # 更新 Go 模块 | |
| RUN go mod tidy && \ | |
| go mod download | |
| # 构建二进制文件 | |
| RUN go build -ldflags "-s -w -X 'one-api/common.Version=$(cat VERSION)' -extldflags '-static'" -o bin/chat-api | |
| # 最终阶段:运行环境 | |
| FROM nginx:alpine | |
| # 暴露服务端口 | |
| EXPOSE 7860 | |
| # 创建必要的目录 | |
| RUN mkdir -p /data/logs && \ | |
| mkdir -p /logs && \ | |
| chmod -R 777 /data && \ | |
| chmod -R 777 /logs | |
| # 配置 Nginx | |
| COPY nginx.conf /etc/nginx/nginx.conf | |
| # 复制编译后的二进制文件 | |
| COPY --from=backend-builder /go/src/one-api/bin/chat-api /chat-api | |
| # 启动脚本 | |
| COPY start.sh /start.sh | |
| RUN chmod +x /start.sh | |
| CMD ["/start.sh"] | |