3 minutes reading time
最近在群里看到群友提到了 Fly.io 这个 应用部署平台,相比其它平台,Fly.io 提供了数据库。本篇文章我就来简单介绍如何使用 Fly.io。
Flyctl 是一个应用命令行工具,可以让你很方便的从创建用户、创建应用并部署应用。
iwr https://fly.io/install.ps1 -useb | iex
curl -L https://fly.io/install.sh | sh
brew install flyctl
或者
curl -L https://fly.io/install.sh | sh
使用 flyctl auth signup
命令进行用户注册,你可以使用电子邮件注册,也可以使用 Github 账号进行登录。
使用 flyctl auth login
命令登录你的 Fly.io 账号,由于我没有 Fly.io 账号,前面注册时就会登录,可以直接跳过这步。
接下来我们就可以进行应用的部署了,Fly.io 使用的是 docker 镜像的方式进行应用部署的,由于我本地环境的限制,本文我使用一个基础的 flyio/hellofly:latest 镜像进行部署使用。
每个应用使用 fly.toml 配置文件来告诉 Fly.io 如何进行部署。我们使用 flyctl launch
命令生成相应的配置文件。
flyctl launch --image flyio/hellofly:latest
创建过程中会提醒输入应用名,部署的地域和是否使用数据库,我这里使用自动生成的用户名,部署在新加坡,不使用数据库。
生成的配置文件如下:
# fly.toml file generated for long-silence-8142 on 2022-10-23T00:05:25+08:00
= "long-silence-8142"
= "SIGINT"
= 5
= []
[]
= "flyio/hellofly:latest"
[]
[]
= []
= true
[[]]
= []
= 8080
= ["app"]
= "tcp"
= []
[]
= 25
= 20
= "connections"
[[]]
= true
= ["http"]
= 80
[[]]
= ["tls", "http"]
= 443
[[]]
= "1s"
= "15s"
= 0
= "2s"
使用 flyctl deploy
即可部署我们的应用程序。这将查找配置文件并在平台进行部署程序。
通过 flyctl status
可以检查部署的应用程序的状态
App
Name = long-silence-8142
Owner = personal
Version = 0
Status = running
Hostname = long-silence-8142.fly.dev
Platform = nomad
Deployment Status
ID = c25f5f0e-374b-95b5-9f96-820b2f620c53
Version = v0
Status = successful
Description = Deployment completed successfully
Instances = 1 desired, 1 placed, 1 healthy, 0 unhealthy
Instances
ID PROCESS VERSION REGION DESIRED STATUS HEALTH CHECKS RESTARTS CREATED
88ae291a app 0 sin run running 1 total, 1 passing 0 1m41s ago
可以看到我们的程序使用了 long-silence-8142.fly.dev DNS 主机名进行部署,应用程序在新加坡地区运行。我们通过浏览器访问https://long-silence-8142.fly.dev/ 可以看到正确的页面。
本篇文章主要介绍了 Fly.io 平台,并进行简单的使用,接下来还会有对这个平台深入研究的文章。