用于 Rust 应用程序的小而快的 Docker 映像
以下步骤将使用 Rocket “hello world” 应用程序作为演示。
Dockerfile 正常来说基本配置将是:
# Dockerfile.plain
ARG BASE_IMAGE=rust:1.52.1-slim-buster
FROM $BASE_IMAGE
WORKDIR app
COPY . .
RUN cargo build --release
CMD ["./target/release/hello"]
然后构建镜像
time docker build -f Dockerfile.plain -t hello:0.1.0 .
我们可以看到生成1.38GB 的镜像,构建时间为12 分钟。
# build
real 12m13.412s
user 0m0.135s
sys 0m0.095s
REPOSITORY TAG IMAGE ID CREATED SIZE
hello 0.1.0 ac4e1a72ba05 2 minutes ago 1.38GB
rust 1.52.1-slim-buster 61cb3c65a6ba 3 weeks ago 621MB
接下来使用多阶段构建和 cargo-chef 来使镜像尺寸更小
# Dockerf