主题
Fly.io 与 Flet 应用配合良好:它支持 WebSockets,可通过多个 regions 就近部署到用户身边,并且提供适合小型项目的 free tier。
前置条件
- 安装 flyctl。
- 登录:
bash
fly auth login项目文件
把以下文件放到你的应用目录中。
requirements.txt
最少包含:
txt
fletfly.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。 :::
部署
在你的应用目录中:
创建 Fly 应用:
bashfly apps create --name <your-app-name>部署:
bashfly deploy在浏览器中打开应用:
bashfly apps open