在 AIStudio 中部署 one-api
本文介绍如何在 AIStudio 开发机上部署 One API 平台。
信息
如果您只需要在已安装的 One API 中接入 GenStudio API,请参见使用 One API 集成 GenStudio API。
一站式 AI 平台(AIStudio)开发机提供了含 GPU 的开发环境,您可以在 AIStudio 开发机上部署 one-api 项目和 Ollama 等本地推理项目。
改造 Dockerfile
one-api 项目直接提供了 Dockerfile,但该文件直接依赖了 DockerHub 的镜像,在国内网络环境下无法拉取镜像,因此需要对该文件进行改造。此外,我们还需要针对国内情况调整 NPM 和 Go 的设置。
针对 DockerHub 镜像的问题,建议您提前获取构建过程中依赖的镜像,存入自己的租户镜像仓库。本次 Dockerfile 示例中的基础镜像已被替换为租户 te-b905754427352261 的私有镜像:
cr.infini-ai.com/te-b905754427352261/node:22cr.infini-ai.com/te-b905754427352261/golang:alpinecr.infini-ai.com/te-b905754427352261/alpine:latest
完整的 Dockerfile(仅作为示例,请务必自行替换 FROM 语句中的镜像地址):
language-dockerfile
FROM cr.infini-ai.com/te-b905754427352261/node:22 AS builder
# 克隆 one-api 代码仓库
WORKDIR /app
RUN git clone https://ghfast.top/https://github.com/songquanpeng/one-api.git .
RUN echo "registry=https://registry.npmmirror.com" > .npmrc
WORKDIR /app/web
WORKDIR /app/web/default
RUN npm install
RUN DISABLE_ESLINT_PLUGIN='true' REACT_APP_VERSION=$(cat ../../VERSION) npm run build
WORKDIR /app/web/berry
RUN npm install
RUN DISABLE_ESLINT_PLUGIN='true' REACT_APP_VERSION=$(cat ../../VERSION) npm run build
WORKDIR /app/web/air
RUN npm install
RUN DISABLE_ESLINT_PLUGIN='true' REACT_APP_VERSION=$(cat ../../VERSION) npm run build
FROM cr.infini-ai.com/te-b905754427352261/golang:alpine AS builder2
RUN apk add --no-cache g++ git
ENV GO111MODULE=on \
CGO_ENABLED=1 \
GOOS=linux \
GOPROXY=https://goproxy.cn,direct
WORKDIR /build
# 从上一个阶段获取构建产物
COPY --from=builder /app/go.mod /app/go.sum ./
RUN go mod download
COPY --from=builder /app/ .
COPY --from=builder /app/web/build ./web/build
RUN go build -trimpath -ldflags "-s -w -X 'github.com/songquanpeng/one-api/common.Version=$(cat VERSION)' -extldflags '-static'" -o one-api
FROM cr.infini-ai.com/te-b905754427352261/alpine:latest
RUN apk update \
&& apk upgrade \
&& apk add --no-cache ca-certificates tzdata \
&& update-ca-certificates 2>/dev/null || true
COPY --from=builder2 /build/one-api /
EXPOSE 3000
WORKDIR /data
CMD ["/bin/sh"]构建自定义镜像
前往镜像中心,选择使用 Dockerfile 构建镜像。填入您改造后的 Dockerfile,构建自定义镜像,后续用于启动 AIStudio 开发机。
启动 one-api
创建 AIStudio 开发机,使用自定义镜像。登录后,执行以下命令。
language-shell
cd /
chmod u+x ./one-api
./one-api --port 3000 --log-dir ./logs访问 Web UI:
- 使用开发机的预览 Web 应用功能,直接从智算云平台打开预览页面。详见预览开发机上运行的 Web 应用。使用该方式生成的预览链接,要求已登录 AIStudio 账号。
- 如果想避免 AIStudio 平台账号认证,可在本地计算机命令行终端设置端口转发。详见 SSH 端口转发。