Dockerでapt-get: command not foundエラーの解消法

dockerでmysql8.0イメージをビルドする際に、以前までは成功していたんですが、下記のエラーが表示されるようになりました。

 > [tumigame_db 2/5] RUN apt-get update:
#0 0.158 /bin/sh: apt-get: command not found

どうやらapt-getが存在しないために発生しているエラーのようです。

結論から書くと、ベースイメージにdebianを指定することで解消されました。

# FROM mysql:8.0
FROM mysql:8-debian

この-debianを指定しないと、ディストリビューションがoraclelinuxとなってしまい、apt-getが使えなくなってしまうようです。

公式のサポートしているタグのリンクを辿ると、oraclelinuxとdebianの2つがディストリビューションとして定義されていました。

https://hub.docker.com/_/mysql

docker hub mysql公式イメージのサポートタグリスト
docker hub mysql公式イメージのサポートタグリスト

下記が8.0.29、8.0、8、latest、8.0.29-oracle、8.0-oracle、8-oracle、oracleのいずれかで定義した際のベースイメージです。

リンク先のgitで管理されているDockerファイルからも読み取れます。

mysql8 ベースイメージoraclelinux
mysql8 ベースイメージoraclelinux

下記は8.0.29-debian、8.0-debian、8-debian、debianのいずれかで定義した際のベースイメージです。

mysql8 ベースイメージdebian
mysql8 ベースイメージdebian

いつの間にかビルドが通らなくなっていたので、どこかのタイミングでベースイメージがdebianからoraclelinuxへ切り替わったのかもしれませんね。

短いですが、今回はこれで終わりにしたいと思います。

最後まで読んで頂きありがとうございます。

コメントを残す

メールアドレスが公開されることはありません。