
阿里云效,是一站式代 码托管,CI持续集成平台。今天给大家带来一个教程,如何用云效,构建基于Rust开发的web项目,部署到我们的服务器(不必须是阿里云的机器,可以是任何一家IDC的机器)。
项目代码我们已经开发好了,是一个用actix-web框架开发的hello world.
接下来登录云效,开始创建发布流程。

新建一个Rust - hello 的发布流
选择代码源,我们的代码是在云效code上面,直接选就好了。 记得先自动触发构建,这样提交代码就会自动构建

接着选阿里云镜象构建。 如果你要用谷歌他们的源,最好用香港构建集群;
开通阿里云的 ACR 容器镜象仓库服务,建议选美国硅谷。仓库是放镜像的地方,构建完的镜像,要推到仓库,你才能部署。

注意,这里构建生成了一个标签,${DATETIME}, 等一下部署的时候,要用到这个,这相当于版本号
接下来加一个docker 部署的操作,上一步构建生成的镜像推送到仓库了,在这一步,会拉取并部署

加一个Docker 部署,部署这里,选择好机器组, 执行用户我用root, 然后下面是需要执行的命令,我以podman为例
podman是docker的最好替代,它可以用systemd启动,docker太重了,podman 轻便一些。debian,ubuntu, centos都可以安装使用podman
你可以写一个脚本,生成一个完整的systemd.service, 下面是我实际的部署实例的命令
# 到我们的服务器实际部署应用的目录下面cd /home/data/www/rust-hello# 登录docker 仓库,要拉取镜象podman login -u xxx -p xxx registry.us-west-1.aliyuncs.com# 创建一个容器,但不启动,等下启动podman create -dt --name rust-hello --replace=true -p 8012:8012 -v /home/data/www/rust-hello:/data/rust-hello registry.us-west-1.aliyuncs.com/xxx/rust-hello:${DATETIME}# 生成一个systemd 启动文件podman generate systemd --name rust-hello --new -f# 用我们自己的脚本,启动容器的systemd文件sctl enable container-rust-hello上面的xxx 要换成你自己的,真正的信息
sctl 是我写的一个脚本,能快速处理服务的systemd配置,在之前的文章有讲过
好了,到这里,咱们的自动构建发布就配置好了,如果没有任何意外,那么构建好,发布完,你就能用浏览器访问了。
你的Rust 开发的web应用部署好了。
下一次,你改了代码,构建会自动触发,部署,容器会自动更新为最新的版本。

参考阅读: 利用sctl管理你自己的服务启动脚本
https://www.toutiao.com/a6761563380898595339/