前言
最近在群里看到群友提到了 Fly.io 这个 应用部署平台,相比其它平台,Fly.io 提供了数据库。本篇文章我就来简单介绍如何使用 Fly.io。
安装 flyctl
Flyctl 是一个应用命令行工具,可以让你很方便的从创建用户、创建应用并部署应用。
Windows 安装
iwr https://fly.io/install.ps1 -useb | iex
Linux 安装
curl -L https://fly.io/install.sh | sh
MAC 安装
brew install flyctl
或者
curl -L https://fly.io/install.sh | sh
注册 Fly.io 账号
使用 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
app = "long-silence-8142"
kill_signal = "SIGINT"
kill_timeout = 5
processes = []
[build]
image = "flyio/hellofly:latest"
[env]
[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"
使用 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 平台,并进行简单的使用,接下来还会有对这个平台深入研究的文章。