LoginSignup
0
0

More than 1 year has passed since last update.

MySLQ5.7の公式imageのdocker buildでapt-getのエラーが出る.

Last updated at Posted at 2022-07-06

筆者の動作環境

macOS Monterey(バージョン12.4),MacBook Pro(M1 2020),メモリ16GB,

エラー内容

以下のようなdockerfileを用いたimageのbuildが急に今朝(2022年7月6日)から失敗するようになりました.

FROM --platform=linux/amd64 mysql:5.7
RUN apt-get update

(注)M1以外の方はplatform指定を除いてください.
エラー内容は以下のようなものです.

$ docker build -t test .
[+] Building 1.1s (5/5) FINISHED                                                                                                                                                      
 => [internal] load build definition from Dockerfile                                                                                                                             0.0s
 => => transferring dockerfile: 98B                                                                                                                                              0.0s
 => [internal] load .dockerignore                                                                                                                                                0.0s
 => => transferring context: 2B                                                                                                                                                  0.0s
 => [internal] load metadata for docker.io/library/mysql:5.7                                                                                                                     0.8s
 => CACHED [1/2] FROM docker.io/library/mysql:5.7@sha256:4279d155f8cab19149c6078b20d53976f1498e31d6f848ac83e11323909b41f1                                                        0.0s
 => ERROR [2/2] RUN apt-get update                                                                                                                                               0.3s
------
 > [2/2] RUN apt-get update:
#5 0.232 /bin/sh: apt-get: command not found
------
executor failed running [/bin/sh -c apt-get update]: exit code: 127

原因

mysqlの公式imageでのパッケージダウンロードコマンドが2022年7月6日を境にyumに切り替わったからみたいです?
mysql:5.7は2022年7月6日7時57分時点でリンク先のものになっています.
IMAGE LAYERSの6つめなどでyumが使用されているのが確認できます.
スクリーンショット 2022-07-06 11.20.08.png
過去のIMAGE LAYERSの見方が分からないので,過去のものが確認できず...
このレポジトリで管理されているようです.)
過去の記事でFROM mysql:5.7してRUN apt-get updateしてる例はたくさんあるし,自分もそれをしていたので,昔はapt-getに対応してものがyumに切り替わったってことのようです.
試しに

FROM --platform=linux/amd64 mysql:5.7
RUN yum update

で実行してみたところ問題なく動作しました.

対処法

とりあえずの対処法としてはapt-getがデフォルトでパッケージインストールコマンドとして使われているdebianのイメージを明示的に使うようにしましょう.

FROM --platform=linux/amd64 mysql:5.7-debian
RUN apt-get update

mysql:5.7が使いたい場合にはapt-getyumに書き換える必要がありそうですね.

追記 

根本原因

mysqlのdocker imageが管理されているレポジトリをみにいくと,tagが変更されてるのが確認できました.
5.7系統の一部,8.0系統の一部がdebianベースのdockerfileからoracleベースのdockerfileに変更されているみたいですね.
コミット履歴は以下のリンクはこちら

またこちらのPRの議論を見る感じ,今後はOracleベースでいくみたいです.
なので,yum対応を長期的にはした方がいい感じですかね.(以下本文引用)

we're not planning to remove the Debian-based variants of 5.7 or 8.0 anytime soon (however, if there's ever an 8.1 or 9.0, that will likely be Oracle-only).

(deepl訳)Debian ベースの 5.7 や 8.0 の亜種をすぐに削除する予定はありません (しかし、もし 8.1 や 9.0 があるならば、それはおそらく Oracle 専用になるでしょう)。

(2022年7月6日13時くらいに追記)

0
0
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
0