Docker 应用
什么是 Docker 用户空间
Docker 用户空间允许用户部署任意容器化 Web 应用。相比 Gradio 和 Streamlit 提供的预设运行环境,Docker 类型提供了更大的灵活性,支持任何编程语言和框架,适用于需要自定义运行环境的场景。
创建 Docker 用户空间
- 按照 创建用户空间 中的步骤,进入创建表单。
- 在 SDK 类型 中选择 Docker。
- 在 Docker 模板 中选择一个平台预置模板(如 ChatUI)或后续使用自定义 Dockerfile。
- 填写其他必要参数后,点击 创建用户空间 提交。
使用 ChatUI 模板
ChatUI 是常用的 Docker 模板之一,可以快速部署一个对话式 AI 界面。
配置步骤
- 创建空间时,选择 Docker SDK 类型和 ChatUI 模板。
- 模板会自动显示需要填写的变量和密钥字段。
- 在 Space Variables 中填入目标模型的名称,该模型需已在平台上部署推理服务。
- 根据模板提示填写其他必要的配置信息。
- 完成创建后,空间将自动使用 ChatUI 模板初始化并部署。
备注
使用 ChatUI 模板时,所引用的模型需已启动推理实例。请先在模型页面创建推理服务,获取模型名称后再配置 ChatUI 空间。
使用自定义 Dockerfile
如果平台预置模板不满足需求,可以使用自定义 Dockerfile 部署应用。
第一步:克隆仓库
git clone https://<platform-host>/<namespace>/<space-name>
cd <space-name>
第二步:创建 Dockerfile
创建 Dockerfile,定义应用的构建和运行环境。以下是一个基于 Python Flask 的示例:
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 7860
CMD ["python", "app.py"]
第三步:创建应用代码
创建 requirements.txt:
flask==3.0.0
创建 app.py:
from flask import Flask, render_template_string
app = Flask(__name__)
@app.route("/")
def index():
return render_template_string("""
<html>
<head><title>Docker Space Demo</title></head>
<body>
<h1>Hello from Docker Space!</h1>
<p>This application is running in a Docker container on the platform.</p>
</body>
</html>
""")
if __name__ == "__main__":
app.run(host="0.0.0.0", port=7860)
第四步:推送代码
git add Dockerfile requirements.txt app.py
git commit -m "Initialize Docker application"
git push origin main
自动构建与部署
代码推送成功后,平台将自动触发构建和部署流程:
- 根据
Dockerfile构建容器镜像。 - 部署并启动容器。
- 构建完成后,用户空间页面将展示应用界面。
可在用户空间详情页查看构建日志和运行状态。
备注
Docker 应用需要监听
7860 端口,平台会将该端口映射为应用的访问入口。请确保应用启动后在该端口提供 HTTP 服务。