扫一扫分享
fly.io 是一个容器化的部署平台,只需要一个Dockerfile文件就能部署代码到fly.io 的服务器上,同时还自动生成域名。
文档地址:https://fly.io/docs/hands-on/install-flyctl/
首先需要安装 flyctl 这个工具: Mac:
brew install flyctl
Linux:
curl -L https://fly.io/install.sh | sh
Windows: 在Powershell中运行下面的命令:
iwr https://fly.io/install.ps1 -useb | iex
如果执行flyctl version 不报错,就说明安装成功了。
一个小技巧,flyctl还有个别名 fly,敲起来更简短些。
安装这个工具是一次性的,后面不需要再操作
创建账号:
fly auth signup
会打开网页,选择自己要创建账号的方式,GitHub账号或者邮箱等。
创建完成后登录账号:
fly auth login
这里采用 http://fly.io 提供的Flask demo 代码,先在本地跑起来:
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 就能看到网站,说明本地搭建成功了。
在当前目录下,执行fly launch,进入交互式界面创建App:
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 的服务器上:
flyctl deploy
执行成功后,可以用flyctl open来打开浏览器,访问自己部署的App,网址是appname.fly.dev。
如果后面有源码或者配置的修改,可以多次执行flyctl deploy,会生成新的版本v0,v1, v2依次往下,往fly.io上部署。
接下来就是修改你的Flask源代码,完成更复杂有真正意义的功能了。
机器部署完成后,可以通过flyctl ssh console来登录机器,登录后就跟普通Linux机器的使用是一样的了,可以随意探索。
在一个终端输入下面的命令来代理端口
fly proxy 10022:22
然后保持上面的终端打开,在另一个终端输入下面的命令:
scp -P 10022 root@localhost:/path/of/file/on/vm /path/on/local
修改文件的路径就能将文件复制过来
手机预览