docker安装rust_阿里云效,构建Rust 容器镜象并部署

a68ba8c8f2d29f7501b48bab161a9826.png

阿里云效,是一站式代 码托管,CI持续集成平台。今天给大家带来一个教程,如何用云效,构建基于Rust开发的web项目,部署到我们的服务器(不必须是阿里云的机器,可以是任何一家IDC的机器)。

项目代码我们已经开发好了,是一个用actix-web框架开发的hello world.

接下来登录云效,开始创建发布流程。

38c6e03bae93e47b18c0f3bcd305f8aa.png

新建一个Rust - hello 的发布流

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

44b38a5fcf99cafe8123b7763b640895.png

接着选阿里云镜象构建。 如果你要用谷歌他们的源,最好用香港构建集群;

开通阿里云的 ACR 容器镜象仓库服务,建议选美国硅谷。仓库是放镜像的地方,构建完的镜像,要推到仓库,你才能部署。

47f73baf2bac0eaee97fe388a1261cf3.png

注意,这里构建生成了一个标签,${DATETIME}, 等一下部署的时候,要用到这个,这相当于版本号

接下来加一个docker 部署的操作,上一步构建生成的镜像推送到仓库了,在这一步,会拉取并部署

d8f1d6481b900fca30364a406df7d829.png

加一个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应用部署好了。

下一次,你改了代码,构建会自动触发,部署,容器会自动更新为最新的版本。

235910cb26d24057f7e4e8af06e2d131.png

参考阅读: 利用sctl管理你自己的服务启动脚本

https://www.toutiao.com/a6761563380898595339/


版权声明:本文为weixin_26720479原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。