使用 buildkit 进行多架构构建并提取产物

其实是在 static-openssh 使用的,抽出来记录一下。

使用 Dockerfile 进行构建主要有两个好处:

  1. 可复现
  2. 可利用 buildkit 实现多架构构建

在 Dockerfile 部分,我们需要使用多阶段构建,将 builder 的产物 copy 到一个 scratch 的产物容器中

1
2
3
4
5
6
7
8
# Dockerfile
FROM ubuntu:22.04 as builder
# RUN command here
RUN echo mock > output

FROM scratch

COPY --from=builder /output /

然后指定需要的 platform,然后让这个容器内容输出到本地以拿到构建产物

1
docker buildx build --platform linux/arm64,linux/amd64 -o "type=local,dest=dist" -f Dockerfile .

此时产物就在 dist 目录下了


使用 buildkit 进行多架构构建并提取产物
https://hunsh.net/20240413/使用-buildkit-进行多架构构建并提取产物/
发布于
2024年4月13日
许可协议