Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >fly.io 使用指南

fly.io 使用指南

作者头像
王云峰
发布于 2023-10-23 02:31:49
发布于 2023-10-23 02:31:49
1.4K00
代码可运行
举报
运行总次数:0
代码可运行

1. 概述

最近看技术论坛,发现提到 fly.io 的次数越来越多了。 fly.io 是一个容器化的部署平台,只需要一个Dockerfile文件就能部署代码到fly.io 的服务器上,同时还自动生成域名。其他的好处多多,我根据自己体验,我总结成了下面的这些条:

  • 有免费使用的额度。不填写信用卡信息可以创建一个App,完全不收费;填写信用卡信息后每月有一定额度的免费流量,超过额度会额外收费。所以想做个小demo完全可以不填信用卡试用。 目前已经不支持无信用卡使用了,参见这里的讨论
  • 自动生成域名。比如你创建一个名字叫my_demo的App,那么部署完成后,就会生成my_demo.fly.dev的域名,可以全球访问,不用自己单独买域名了。
  • 可以 SSH 连接进入服务器。部署完成后,可以通过flyctl ssh console 命令登录部署的服务器,所以相当于你有了一台免费的VPS,可以做你想做的任何事情。
  • 部署简单,采用flyctl 命令集合统一部署;支持各种语言的各种框架来搭建部署环境,能自动识别当前目录下代码所采用的是哪个框架,自动部署。

下面简单记录一下使用的流程和一些教程里面没提及的使用命令。

2. 部署一个应用

这里以Python 的 Flask 框架为例,进行部署的步骤总结,其实fly.io支持很多框架,可以在这里查看。

2.1 安装 flyctl

首先需要安装 flyctl 这个工具: Mac:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
brew install flyctl

Linux:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl -L https://fly.io/install.sh | sh

Windows: 在Powershell中运行下面的命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
iwr https://fly.io/install.ps1 -useb | iex

如果执行flyctl version 不报错,就说明安装成功了。

一个小技巧,flyctl还有个alias fly,敲起来更简短些。

安装这个工具是一次性的,后面不需要再操作

2.2 创建并登录账号

创建账号:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fly auth signup

会打开网页,选择自己要创建账号的方式,GitHub账号或者邮箱等。

创建完成后登录账号:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fly auth login
2.3 先在本地将Flask demo跑起来

这里采用 fly.io 提供的Flask demo 代码,先在本地跑起来:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git clone https://github.com/fly-apps/python-hellofly-flask
cd python-hellofly-flask
python -m venv flask-env
source flask-env/bin/activate
python -m pip install -r requirements.txt
FLASK_APP=hellofly flask run

然后访问http://127.0.0.1:5000 就能看到网站,说明本地搭建成功了。

2.4 部署到 fly.io

在当前目录下,执行fly launch,进入交互式界面创建App:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
flyctl launch
Creating app in /Users/username/project/demo/flyio_demo/python-hellofly-flask
Scanning source code
Detected a Python app
Using the following build configuration:
        Builder: paketobuildpacks/builder:base
? Overwrite "/Users/username/project/demo/flyio_demo/python-hellofly-flask/Procfile"? No
? App Name (leave blank to use an auto-generated name): treehole
Automatically selected personal organization: username
? Select region: hkg (Hong Kong, Hong Kong)
Created app treehole in organization personal
Wrote config file fly.toml
? Would you like to set up a Postgresql database now? No
We have generated a simple Procfile for you. Modify it to fit your needs and run "fly deploy" to deploy your application.

然后执行flyctl deploy 来将Appb部署到 fly.io 的服务器上:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
flyctl deploy

执行成功后,可以用flyctl open来打开浏览器,访问自己部署的App,网址是appname.fly.dev

如果后面有源码或者配置的修改,可以多次执行flyctl deploy,会生成新的版本v0,v1, v2依次往下,往fly.io上部署。

接下来就是修改你的Flask源代码,完成更复杂有真正意义的功能了。

2.5 别的有用的flyctl 命令
  • 查看App状态: flyctl status
  • 查看App信息: flyctl info
  • 查看App列表: flyctl apps list
  • 查看App的IP: flyctl ips list
  • 销毁某个App: flyctl apps destroy <appname>

3. 登录部署机器

机器部署完成后,可以通过flyctl ssh console来登录机器,登录后就跟普通Linux机器的使用是一样的了,可以随意探索。

4. 复制部署机器上的文件到本地

在一个终端输入下面的命令来代理端口

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fly proxy 10022:22

然后保持上面的终端打开,在另一个终端输入下面的命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
scp -P 10022 root@localhost:/path/of/file/on/vm  /path/on/local

修改文件的路径就能将文件复制过来

5.一点感想

当demo部署服务成功后,却不知道能做什么真正有意义的事情,或许缺少的不是工具,而是真正产生价值的点子。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-062,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
如何在Fly.io部署Memos
不回头的浪子
2023/08/21
4400
在Fly.io上部署Alist网盘程序
Fly.io 是提供一定限额的免费使用额度的,他们的目标就是让小型的应用可以免费运行,而在需要扩展的时候支付一定的费用,而这笔费用也不会太昂贵。Fly.io 的应用会根据使用情况单独计费。 Fly.io 会根据单个用户或者组织计费,官方也说了,如果想要更多免费的应用,那么你可以创建多个组织。
骤雨重山
2022/12/05
3.9K0
在Fly.io上部署Alist网盘程序
在fly.io部署Uptime Kuma
原文地址https://blog.hb.cn/archives/1703818863843
不回头的浪子
2023/12/29
2770
在fly.io部署artalk评论系统
不回头的浪子
2023/08/21
3390
斯坦福小镇二创来了!8个智能体生活交友,爆火AI Town人人可搭,网友整活「猫猫小镇」|附教程
就在刚刚,有团队基于斯坦福Smallville项目,搭建出了一个真正的「西部世界」AI Town被搭建了起来。
新智元
2023/09/09
1.2K0
斯坦福小镇二创来了!8个智能体生活交友,爆火AI Town人人可搭,网友整活「猫猫小镇」|附教程
免费静态托管 | 笔记
引言 1. GitHub Pages https://pages.github.com/ 2. Vercel https://vercel.com image-20220215150427498 image-20220215150451627 image-20220215150557195 这里 只能输入 公开的仓库地址 下面在 GitHub 私有仓库,利用 GitHub App 来安装 Vercel, 更新: 错误,GitHub Marketplace 没有 Vercel App, 通过下方
yiyun
2022/04/01
5.2K0
免费静态托管 | 笔记
在fly.io部署Gotosocial
GoToSocial 是一个十分轻量(轻量到甚至没有用户界面,需要使用第三方程序登录、兼容 Mastodon 应用进行使用)的 ActivityPub 联邦社交网络程序,自建 GoToSocial 可以避免您的信息因为所在实例倒闭、不可抗力等原因化为乌有。
不回头的浪子
2023/08/21
3930
使用Fly.io进行Ajax请求管理:移动端登录鉴权开发详解
在移动应用开发中,登录鉴权是一个至关重要的环节。它不仅关系到用户数据的安全性,还直接影响用户体验。传统的登录鉴权方式往往涉及复杂的服务器端逻辑和繁琐的前端代码。而使用Fly.io这样的轻量级HTTP请求库,可以极大地简化这一过程,提高开发效率和应用性能。
lyushine
2024/12/04
1470
Fly.io 以对象存储从三大云中吸引开发者
虽然 Fly.io 一直保持低调,但它正在悄悄逼近 PaaS 提供商和三大巨头,积累了大量的开发者基础并建立了战略合作伙伴关系。
云云众生s
2024/03/28
1350
GitLab CICD与Kubernetes实践·部署Flask Web服务
上篇?Gitlab CICD 与Kubernetes实践·部署GitLab Runner文章内通过Kubernetes已经完成Gitlab Runner的部署的,现在我通过一个实际的案例来测试和使用G
公众号: 云原生生态圈
2020/11/02
2K0
GitLab CICD与Kubernetes实践·部署Flask Web服务
如何使用Cloudways搭建WordPress网站
如今,搭建网站已经变得非常简单,这主要得益于开源的CMS建站系统的兴起。即使是不懂编程的人也能轻松搭建自己的网站,这些CMS系统提供了丰富的主题模板和插件,使用户可以通过简单的拖放和配置操作来建立自己的网站。
无代码Dev
2024/05/27
1830
如何使用Cloudways搭建WordPress网站
推荐 10 个 Heroku 的替代品
很多人都喜欢尝试新的框架和工具,然后用它创建一个小项目,发布到 GitHub 上,并提供一个可用于演示的链接,这样大家就不需要下载你的项目、初始化、安装依赖,然后运行等一系列复杂的步骤。
somenzz
2023/01/03
5.5K0
推荐 10 个 Heroku 的替代品
面对突发需求,如何借助 Serverless 快速上云 | 直播分享
当突发事件来临时,当绝佳 idea 闪现时,如何快速搞定开发和部署,使之变身为产品?快,则应万变!Serverless 具有拥有免运维、开发成本降低、按需自动扩缩容等诸多优点,并且已经支持 Express、Koa、Flask、Lavaral 等传统语言框架,这些使得开发者能够更快的构建和上线应用,为新业务和原有服务快速上云,提供了便捷的支持。 明晚(2月27日) 20:00 - 21:00,腾讯云 Serverless 技术专家王俊杰,将为大家分享突发需求下,如何使用 Serverless Framewo
腾讯云serverless团队
2020/03/02
6270
面对突发需求,如何借助 Serverless 快速上云 | 直播分享
开发者分享:利用 EMQX Cloud 与 ESP32 微控制器实现智能液冷散热系统
作为一名后端开发人员,我经常需要同时运行多个 Jetbrains IDE (集成开发环境),所以经常面临笔记本电脑过热问题。我曾尝试过各种散热方法,从传统的风扇到更先进的半导体冷却系统,但这些方法都带来了新的问题,如噪音和耗电等。
EMQ映云科技
2024/03/05
1090
开发者分享:利用 EMQX Cloud 与 ESP32 微控制器实现智能液冷散热系统
JPG2ASCII开发上线记录
刚开始做运维的时候喜欢在登录服务器的时候自动打印一些ASCII图像, 于是大量搜寻这种图片以做到自己的欢迎页独一无二。 想想有点不误正业, 现在虽说找到合适的ASCII图形, 相对于以前不喜这个东西了, 但至少是一段时间的情怀. 最近研究flask, 碰巧又遇到jp2a这个开源软件, 所以想把图片转ASCII图像做成一个在线服务, 顺便入门flask. JPG2ASCII
用户1416054
2018/08/02
1.1K0
欢迎使用 wechat-chatgpt
欢迎使用 wechat-chatgpt  在微信上迅速接入 ChatGPT,让它成为你最好的助手! English | 中文文档  功能点 使用 WeChat 和 ChatGPT 进行互动: 基于 wechaty 和 Official API 在微信中使用 ChatGPT 支持多轮对话 支持命令设置 部署和配置选项: 提供 Dockerfile,可以通过 docker 进行部署 支持使用 docker compose 进行部署 支持在 Railway 和 Fly.io 上部署 其他功能: 支持 Da
西里国际站
2023/05/18
1.9K0
Slack 创建聊天机器人
Slack 会将事件推送到你配置的 Request URL。以下是使用 Python 和 Flask 的示例代码:
IT蜗壳-Tango
2024/11/21
2040
Jenkins+Maven+Git(GitLab)持续集成Java项目
参考:https://ken.io/note/centos7-gitlab-install-tutorial
KenTalk
2019/08/12
5.9K0
Jenkins+Maven+Git(GitLab)持续集成Java项目
记录网站诞生过程-使用hexo+github pages
此博客记录了搭建网站的详细过程,以及建站过程中遇到的一些坑。博客介绍了安装homebrew,nodejs,hexo,域名注册,github设置,DNS解析等过程。此次建站过程基于mac系统。网站使用的hexo+github pages的方式。
hrscy
2018/08/30
6610
记录网站诞生过程-使用hexo+github pages
使用Python Flask搭建Web问答应用程序并发布到公网远程访问
Flask是一个Python编写的Web微框架,让我们可以使用Python语言快速实现一个网站或Web服务,本期教程我们使用Python Flask搭建一个web问答应用程序框架,并结合cpolar内网穿透工具将我们的应用程序发布到公共网络上,实现可多人远程进入到该web应用程序访问。
鸽芷咕
2023/12/25
6170
使用Python Flask搭建Web问答应用程序并发布到公网远程访问
相关推荐
如何在Fly.io部署Memos
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验