AIClient-2-API/Dockerfile
hex2077 015a17a3a9 feat: 更新项目名称为AIClient2API并添加logo
添加项目logo图片文件
将所有文档中的GeminiCli2API更名为AIClient2API
更新Dockerfile和README中的项目描述
在README中添加DeepWiki徽章和代理设置说明
2025-08-04 13:19:21 +08:00

44 lines
No EOL
1.2 KiB
Docker
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 使用官方Node.js运行时作为基础镜像
# 选择20-alpine版本以满足undici包的要求需要Node.js >=20.18.1
FROM node:20-alpine
# 设置标签
LABEL maintainer="AIClient2API Team"
LABEL description="Docker image for AIClient2API server"
# 设置工作目录
WORKDIR /app
# 复制package.json和package-lock.json如果存在
COPY package*.json ./
# 安装依赖
# 使用--production标志只安装生产依赖减小镜像大小
# 使用--omit=dev来排除开发依赖
RUN npm install
# 添加非root用户以提高安全性
RUN addgroup -g 1001 -S nodejs
RUN adduser -S nextjs -u 1001
# 复制源代码
COPY . .
# 更改文件所有者为非root用户
RUN chown -R nextjs:nodejs /app
USER nextjs
# 创建目录用于存储日志和系统提示文件
RUN mkdir -p /app/logs
# 暴露端口
EXPOSE 3000
# 添加健康检查
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
CMD node healthcheck.js || exit 1
# 设置启动命令
# 使用默认配置启动服务器,支持通过环境变量配置
# 通过环境变量传递参数例如docker run -e ARGS="--api-key mykey --port 8080" ...
CMD ["sh", "-c", "node src/api-server.js $ARGS"]