Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Docker イメージのマルチアーキテクチャビルド / docker-muti-arch-build

shin1x1
December 21, 2021

Docker イメージのマルチアーキテクチャビルド / docker-muti-arch-build

shin1x1

December 21, 2021
Tweet

More Decks by shin1x1

Other Decks in Programming

Transcript

  1. Docker イメージのマルチアーキテクチャビルド
    2021/12/21 @shin1x1

    View Slide

  2. Docker イメージ
    linux/amd64: Intel Mac で利用するイメージ
    linux/arm64: Apple Silion Mac で利用するイメージ
    異なるアーキテクチャイメージもいちおう動作するが、
    動作が遅くなったり、挙動が不安になるケースも
    動作する環境に合わせたイメージを作ろう!
    2

    View Slide

  3. Docker Buildx によるマルチアーキテクチャビルド
    https://docs.docker.com/buildx/working-with-buildx/
    3

    View Slide

  4. ビルドする Dockerfile
    FROM debian:bullseye

    CMD uname -m

    Docker イメージビルド & プッシュ
    $ docker buildx build --platform linux/amd64,linux/arm64 \

    -t shin1x1/sample --push .

    --platform
    でターゲットを指定
    --push
    で Docker Hub への push も同時に行う
    4

    View Slide

  5. できた!
    5

    View Slide

  6. M1 Mac で実行すると aarch64
    を出力
    $ docker run --rm shin1x1/sample

    aarch64

    --platform
    オプションで amd64
    イメージを実行
    $ docker run --rm --platform linux/amd64 shin1x1/sample

    x86_64

    6

    View Slide

  7. 詳細は blog で
    https://blog.shin1x1.com/entry/docker-multi-arch-build-on-github-actions
    7

    View Slide