Skip to content

Fly.io 与 Flet 应用配合良好:它支持 WebSockets,可通过多个 regions 就近部署到用户身边,并且提供适合小型项目的 free tier。

前置条件 ​

  1. 安装 flyctl。
  2. 登录:
bash
fly auth login

项目文件 ​

把以下文件放到你的应用目录中。

requirements.txt ​

最少包含:

txt
flet

fly.toml ​

Fly 应用配置:

toml
app = "<your-app-name>"

kill_signal = "SIGINT"
kill_timeout = 5
processes = []

[env]
  FLET_SESSION_TIMEOUT = "60"

[http_service]
  internal_port = 8000
  force_https = true
  auto_stop_machines = true
  auto_start_machines = true
  min_machines_running = 0

  [http_service.concurrency]
    type = "connections"
    soft_limit = 200
    hard_limit = 250
  • 把 <your-app-name> 替换为你想要的应用名称。它也会用于应用最终的 URL,形式为 https://<your-app-name>.fly.dev。
  • internal_port 必须对应 FLET_SERVER_PORT,默认值为 8000。
  • FLET_SESSION_TIMEOUT 控制会话存活时间(秒)。
  • 其他变量参见 环境变量参考。

Dockerfile ​

创建一个 Dockerfile,包含构建应用容器所需的命令,例如:

Dockerfile
FROM python:3-alpine

WORKDIR /app

COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

EXPOSE 8000

CMD ["python", "main.py"]

main.py 是应用的 entry point。如果你的文件名不同,请相应修改。

::: infoInfo Fly.io 把应用作为 Docker 容器部署,并提供免费的远程 Docker 构建器,因此你无需在本地安装 Docker。 :::

部署 ​

在你的应用目录中:

  1. 创建 Fly 应用:

    bash
    fly apps create --name <your-app-name>
  2. 部署:

    bash
    fly deploy
  3. 在浏览器中打开应用:

    bash
    fly apps open

关注我,学习大模型、大数据、Python等热门技术。