Rust应用容器化

Posted by 梁远鹏 on 2022-02-02 | 阅读 |,阅读约 1 分钟

TOC

本文打包的rust应用是基于actix-web开发的包含expose metrics的web应用.

Rust应用容器化的几种方式

  1. 编写Dockerfile,使用rust镜像编译并且用rust/centos/alpine镜像来作为最终运行
  2. 使用buildpacks工具构建镜像

Dockerfile和运行时镜像

Rust镜像作为运行时

这种方式打包出来的镜像大小是GB级别的…

Centos镜像作为运行时

镜像大小为245MB

使用这种方式打包好镜像后尝试运行,发现报错了,运行不了/lib64/libc.so.6: version 'GLIBC_2.18' not found

主要是由于Centos7中的glibc版本太低了,这里简单的做法是将centos7替换成了centos8解决了这个问题.

alpine镜像作为运行时

遇到的问题:standard_init_linux.go:228: exec user process caused: no such file or directory

buildpacks

Rust可用的几种buildpack可以看Paketo社区的Rust buildpack

尝试使用paketo-community/cargo

发现报错了,还没找到原因.

微信公众号

扫描下面的二维码关注我们的微信公众号,第一时间查看最新内容。同时也可以关注我的Github,看看我都在了解什么技术,在页面底部可以找到我的Github。

wechat-qrcode

温馨提示

本文还在持续创作中,如果你对本文主题感兴趣可以加我微信好友进行催更,博客下方可以找到我的微信联系方式 :)