0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

docker build の DEPRECATED をなんとかする

Last updated at Posted at 2024-09-13

あらすじ

Docker 触り初めで docker build に触れたとき・・・

docker build -t image-name .

# DEPRECATED: The legacy builder is deprecated and will be removed in a future release.
#             Install the buildx component to build images with BuildKit:
#             https://docs.docker.com/go/buildx/
#
# (以降ビルドのログ)

ん?DEPRECATED だって?何か対応しとくか・・・。

調べると代わりに buildx を使えと。

docker buildx
# docker: 'buildx' is not a docker command.
# See 'docker --help'

あれ、無いだと?何か導入しろと・・・。

build/buildx とは

Docker のビルドは、(超雑に言うと) dockerfile からイメージを作ってくれるヤツです。

これについて、build はレガシーとなっていて廃止予定、対し buildx という新しいのに切り替えられる様子。

BuildKit というものを使って、ビルドをとても良い感じにグレードアップしてくれるらしい (よくわかっていない)。

早速 buildx を導入

buildx を導入しましょう。GitHub の README.md にインストールの説明があります。

どれどれ、Windows と MacOS なら Docker desktop に組み込まれていると。Linux は docker-buildx-plugin パッケージをインストールせよと。

Linux Mint だけど、Rootless で入れてるからパッケージマネージャで入れても反映されないような・・・。その下にある Manual download でやってみます。

マニュアルダウンロードの場合、自動アップデートされないため、テスト用途ならいいけど、プロダクション用途には推奨されない様子

GitHub リポジトリの Releases からバイナリを入手します。

一般的な PC ならだいたい buildx-vx.x.x.linux-amd64 で良いはず。

あとはこれを所定の場所に配置 (ファイル名は docker-buildx に)。これも README.md にある通り。実行権限の付与もお忘れなく。

mv <ダウンロードしたファイル> ~/.docker/cli-plugins/docker-buildx
chmod +x .docker/cli-plugins/docker-buildx

これで docker buildx が使えるようになるはず。

docker buildx

# Extended build capabilities with BuildKit
#
# Usage:  docker buildx [OPTIONS] COMMAND
#
# (以降オプション詳細など)

おまけ: ビルドキャッシュの効能がわかりやすい

buildx で、適当な dockerfile をビルドしてみることにします。自分の記事で作った、Git インストール済み Debian の dockerfile で試します。

カレントに以下のような dockerfile を作成。

FROM debian

RUN apt update
RUN apt install -y git

一旦ビルド。

docker build -t image-name .

イメージを削除し、ビルドし直してみてください。

docker rmi image-name
docker build -t image-name .

レガシーのビルドだと最初から律儀にビルドしてくれますが、buildx ではキャッシュのおかげで 2度目はすぐに完了します (するハズ)。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?