Coming Soon:Rustバイナリ入りの極小Dockerイメージを作る(予告編)

Posted on
実践Rust入門 Docker Linux-musl

書籍『実践Rust入門』の2-5-4項では、クロスコンパイルを応用した極小のDockerイメージを紹介しています。 書籍内で予告したとおり、その具体的な作成手順を当ブログで紹介する予定です。

実践Rust入門の該当部分

$ docker images hello-sqlite
REPOSITORY    TAG     IMAGE ID      CREATED        SIZE
hello-sqlite  latest  0f60b9e23a91  5 minutes ago  1.95MB
alpine        latest  196d12cf6ab1  2 months ago   4.41MB
ubuntu        18.04   ea4c82dcd15a  4 weeks ago    85.8MB

 hello-sqliteはSQLiteサーバを組み込んだRustサンプルプログラムを実行するためのコンテナです。 x86_64-unknown-linux-muslターゲット向けにビルドしたバイナリを、scratchという空のDockerイメージに入れました。 このバイナリにはSQLiteはもちろん、全てのRustバイナリが依存しているlibcなども埋め込まれています。 シェルなどのLinuxコマンドがなくても実行できますので、そのサイズは1.95MBとなっており、Dockerイメージとしては極端に小さい部類に入るAlpine Linuxのイメージ(4.41MB)よりも小さくなっています。

 誌面の都合から具体的な作成手順は省略します。 筆者らが管理するWebサイトにて他のターゲットと共に紹介していますので、興味があればそちらをご覧になってください。

追記(2019年12月7日)

たいへん遅くなりましたが、記事を公開しました。 お待たせしてすみません!