File size: 1,268 Bytes
3a10c62 eea8e51 3a10c62 eea8e51 cddad2d 5ad3aa3 eea8e51 8755763 1eef2e4 0a11ff7 eea8e51 3a10c62 eea8e51 3a10c62 eea8e51 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | # 步骤 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"]
|