跳到主内容
Rust
文章阅读

rust交叉编译Salvo项目并发布到docker运行

2025/12/1695 次阅读3 分钟

电脑需要先安装一下docker

1.配置交叉编译工具

工具链接: rust-musl-cross

我这里用的是x86_64-musl,所以安装命令为


docker pull messense/rust-musl-cross:x86_64-musl

在~/.zshrc设置别名


alias rust-musl-builder='docker run --rm -it -v "$(pwd)":/home/rust/src messense/rust-musl-cross:x86_64-musl'

以后就可以用这个命令来编译了


rust-musl-builder cargo build --release

编译后会在项目目录下生成执行可执行文件,我这里像这样 image.png

2. 编写Dockerfile

d_blog替换为项目名字


FROM alpine:latest
ENV TZ Asia/Shanghai
RUN apk add tzdata && cp /usr/share/zoneinfo/${TZ} /etc/localtime \
    && echo ${TZ} > /etc/timezone \
    && apk del tzdata
WORKDIR /home/app-dir
COPY ./target/x86_64-unknown-linux-musl/release/d_blog ./d_blog
COPY ./data ./data
COPY ./config ./config
COPY ./assets ./assets
COPY ./logs ./logs
ENV LANG en US.UTF-8
ENV LANGUAGE en US:en
ENV LC ALL en US.UTF-8
EXPOSE 5800
ENTRYPOINT ["/home/app-dir/d_blog"]

这是我的项目结构 image.png

3.打包镜像

项目根目录下执行 hello_rust 镜像名称


sudo docker build  -t hello_rust . 

执行过程如下图 image.png

生成的镜像只有30多M image.png

可以看到可执行文件和一些配置文件已经拷贝到镜像里面去了 image.png

4.执行


docker run --name test -it  hello_rust:latest 

hello_rust:latest : 镜像名称

test: 容器名称

可以看到已经跑起来了 image.png

在orbStack也可以看到 image.png

返回顶部