# 步骤 1: 基于官方镜像 FROM verofess/grok2api:latest # 步骤 2: 切换到 root 用户,以进行环境设置 USER root # 步骤 3: 创建一个可写的目录,并为 Playwright (应用底层依赖) 指定数据路径 # 这是为了解决 EACCES: permission denied 错误 RUN mkdir -p /data/writable-app-data && chmod -R 777 /data RUN rm -rf /app/data # 3. 创建一个从 '/app/data' 指向我们可写目录的符号链接。 RUN ln -s /data/writable-app-data /app/data # 步骤 4: 设置应用运行的主机和端口。 # 虽然我们将通过CMD强制指定,但保留这些ENV是个好习惯。 ENV HOST="0.0.0.0" ENV PORT="7860" # 步骤 5: 告诉 Hugging Face 容器将暴露 7860 端口 EXPOSE 7860 # 步骤 6: 添加健康检查,确保应用在 7860 端口成功启动 HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \ CMD curl -f http://localhost:7860/ || exit 1 # 步骤 7: 关键修复!覆盖镜像的默认启动命令。 # 我们直接调用应用的启动脚本 app.py,并用 --host 和 --port 参数强制其在正确的地址和端口上运行。 # 这解决了应用忽略环境变量并启动在 5200 端口的问题。 WORKDIR /app CMD ["python", "app.py", "--host", "0.0.0.0", "--port", "7860"]