mio / Dockerfile
xiaozhian's picture
Update Dockerfile
25b2cf6 verified
# 使用基于Debian的Node.js镜像,更适合运行Puppeteer
FROM node:18-slim
# 设置工作目录
WORKDIR /app
# 安装git和其他必要工具
RUN apt-get update && \
apt-get install -y git wget gnupg && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# 从GitHub克隆代码
RUN git clone https://github.com/Pretend-to/mio-chat-backend.git . && \
rm -rf .git
# 安装Chromium和相关依赖
RUN apt-get update && \
apt-get install -y \
chromium \
fonts-ipafont-gothic fonts-wqy-zenhei fonts-thai-tlwg fonts-kacst fonts-freefont-ttf \
ca-certificates \
libxss1 \
--no-install-recommends && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# 设置Puppeteer环境变量
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \
PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium \
PUPPETEER_TIMEOUT=60000 \
PUPPETEER_ARGS="--no-sandbox,--disable-setuid-sandbox,--disable-dev-shm-usage"
# 安装pnpm
RUN npm install -g pnpm
# 安装依赖
RUN pnpm install
# 复制所有项目文件到容器中
COPY . .
# 创建配置目录并设置权限
RUN mkdir -p /app/config/config && \
chmod -R 777 /app && \
chmod +x /app/start.sh
# 设置环境变量默认值
# 所有这些环境变量都可以在运行容器时通过 -e 参数覆盖
ENV \
# 是否开启调试模式
DEBUG=false \
# OpenAI 相关配置
# 是否启用 OpenAI 协议
OPENAI_ENABLE=true \
# OpenAI API 密钥
API_KEY="" \
# OpenAI API 基础 URL
BASE_URL="https://api.openai.com/v1" \
# 允许游客使用的模型关键词
OPENAI_GUEST_MODEL_KEYWORDS="gpt-4o-mini" \
# 允许游客使用的模型全名列表
OPENAI_GUEST_MODEL_FULLNAME_1="gpt-4o-mini" \
OPENAI_GUEST_MODEL_FULLNAME_2="gpt-4o-mini" \
OPENAI_GUEST_MODEL_FULLNAME_3="gpt-4o-mini" \
OPENAI_GUEST_MODEL_FULLNAME_4="gpt-4o-mini" \
# 默认使用的模型引擎
OPENAI_DEFAULT_ENGINE="gpt-4o-mini" \
# Gemini 相关配置
# 是否启用 Gemini 协议
GEMINI_ENABLE=false \
# Gemini API 密钥
GEMINI_API_KEY="" \
# Gemini API 基础 URL
GEMINI_BASE_URL="https://generativelanguage.googleapis.com" \
# 允许游客使用的模型关键词
GEMINI_GUEST_MODEL_KEYWORDS="flash" \
# 允许游客使用的模型全名
GEMINI_GUEST_MODEL_FULLNAME="gemini-1.5-pro" \
# 默认使用的模型
GEMINI_DEFAULT_MODEL="gemini-2.0-flash" \
# Onebot 相关配置
# 是否启用 Onebot 协议
ONEBOT_ENABLE=false \
# 反向 WebSocket 连接地址
ONEBOT_REVERSE_WS_URL="" \
# 机器人 QQ 号
ONEBOT_BOT_QQ="" \
# 管理员 QQ 号
ONEBOT_ADMIN_QQ="" \
# 服务器相关配置
# 服务器监听端口
SERVER_PORT=3080 \
# 服务器监听地址
SERVER_HOST="0.0.0.0" \
# 单个 IP 每分钟最大请求数
SERVER_MAX_RATE=100 \
# Web 相关配置
# 管理员访问码
WEB_ADMIN_CODE="" \
# 普通用户访问码,留空则允许游客登录
WEB_USER_CODE="" \
# 网站备案号
WEB_BEIAN="" \
# 是否默认全屏模式
WEB_FULL_SCREEN=true \
# 网页标题
WEB_TITLE="蜜柚——MioChat" \
# 土块API相关配置
# 土块API密钥
EARTHK_API_KEY="" \
# 土块API绑定的QQ号
EARTHK_BIND_QQ=""
# 暴露服务端口
EXPOSE ${SERVER_PORT}
# 设置启动命令
CMD ["/app/start.sh"]
# 如果需要使用pm2运行,可以使用以下命令替代上面的CMD:
# CMD ["npm", "run", "start"]