跳到主要内容

Fly.io

Fly.io拥有强大的WebSocket支持,并且可以将您的应用部署到靠近用户的数据中心。他们具有非常吸引人的定价,并提供慷慨的免费使用额度,允许您免费托管最多3个应用程序。

要开始使用Fly,首先安装flyctl,然后进行身份验证:

flyctl auth login

要使用flyctl部署应用程序,您需要将以下3个文件添加到您的Python应用程序文件夹中。

创建requirements.txt文件,列出应用程序的依赖项列表。至少应包含flet模块:

requirements.txt
flet

创建描述Fly应用程序的fly.toml文件:

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

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

[env]
FLET_SERVER_PORT = "8080"
FLET_FORCE_WEB_VIEW = "true"

[experimental]
allowed_public_ports = []
auto_rollback = true

[[services]]
http_checks = []
internal_port = 8080
processes = ["app"]
protocol = "tcp"
script_checks = []

[services.concurrency]
hard_limit = 25
soft_limit = 20
type = "connections"

[[services.ports]]
force_https = true
handlers = ["http"]
port = 80

[[services.ports]]
handlers = ["tls", "http"]
port = 443

[[services.tcp_checks]]
grace_period = "1s"
interval = "15s"
restart_limit = 0
timeout = "2s"

<your-app-name>替换为所需的应用程序名称,该名称还将用于应用程序URL,例如https://<your-app-name>.fly.dev

请注意,我们将FLET_SERVER_PORT环境变量的值设置为8080,这是Flet Web应用程序将运行的内部TCP端口。

创建包含构建应用程序容器命令的Dockerfile文件:

Dockerfile
FROM python:3-alpine

WORKDIR /app

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

COPY . .

EXPOSE 8080

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

main.py是您的Python程序文件。

备注

Fly.io将每个应用程序部署为Docker容器,但Fly的一个很大的优点是它提供了一个免费的远程Docker构建器,因此您不需要在本地安装Docker。

接下来,将命令行切换到包含您的应用程序的文件夹,并运行以下命令创建和初始化新的Fly应用程序:

flyctl apps create --name <your-app-name>

通过运行以下命令部署应用程序:

flyctl deploy

就是这样!通过运行以下命令在浏览器中打开您的应用程序:

flyctl apps open