Spaces:
Runtime error
Runtime error
| # 使用官方 python 基础镜像 | |
| FROM python:3.9-slim | |
| # 设置工作目录 | |
| WORKDIR /app | |
| # 设置环境变量避免交互式提示 | |
| ENV DEBIAN_FRONTEND=noninteractive | |
| # 复制 requirements.txt 到容器中 | |
| COPY requirements.txt . | |
| # 安装系统依赖和Python依赖 | |
| RUN apt-get update && \ | |
| apt-get install -y \ | |
| gcc \ | |
| python3-dev \ | |
| build-essential \ | |
| && \ | |
| pip install --upgrade pip==23.3.1 && \ | |
| pip install --no-cache-dir -r requirements.txt && \ | |
| apt-get clean && \ | |
| rm -rf /var/lib/apt/lists/* | |
| # 复制项目的所有文件到容器中 | |
| COPY . . | |
| # 创建必要的目录并设置权限 | |
| RUN mkdir -p /app/public && \ | |
| mkdir -p /app/.chainlit && \ | |
| mkdir -p /app/.files && \ | |
| chmod -R 777 /app/.chainlit && \ | |
| chmod -R 777 /app/.files && \ | |
| chmod -R 777 /app/public | |
| # 创建 Chainlit 配置文件,确保使用正确的 TOML 语法 | |
| RUN echo -e "[general]\nenable_telemetry = false\ndefault_expand_messages = true\n\n[pdf]\nmax_size_mb = 25" > /app/.chainlit/config.toml | |
| # 生成随机secret并创建环境变量文件 | |
| RUN python -c "import secrets; print('CHAINLIT_AUTH_SECRET=\"' + secrets.token_hex(32) + '\"')" > .env && \ | |
| echo "FASTGPT_BASE_URL=\"${FASTGPT_BASE_URL}\"" >> .env && \ | |
| echo "FASTGPT_API_KEY=\"${FASTGPT_API_KEY}\"" >> .env && \ | |
| echo "FASTGPT_SHARE_ID=\"${FASTGPT_SHARE_ID}\"" >> .env && \ | |
| echo "FASTGPT_API_DETAIL=${FASTGPT_API_DETAIL}" >> .env | |
| # 创建非root用户 | |
| RUN useradd -m -u 1000 chainlit && \ | |
| chown -R chainlit:chainlit /app | |
| # 切换到非root用户 | |
| USER chainlit | |
| # 暴露应用程序所需的端口 | |
| EXPOSE 8000 | |
| # 启动 Chainlit 应用程序 | |
| CMD ["chainlit", "run", "app.py", "--host", "0.0.0.0", "--port", "8000"] |