GA

2023/12/10

MySQL公式のDockerリポジトリがcontainer-registry.oracle.comに引っ越していた

この記事は MySQLのカレンダー | Advent Calendar 2023 の10日目の記事です。昨日は meijik さんの 最新のSQL標準(SQL:2023)とFirebird/MySQL/PostgreSQL | キムラデービーブログ でした。

TL;DR


Before

$ sudo docker pull mysql/mysql-server

After

$ sudo docker pull container-registry.oracle.com/mysql/community-server

これだけ。
イメージビルド用のDockerfileは変わっていないっぽいので、Oracle社ビルドのイメージを使っていたなら大した差はないはず(このDockerfileやentrypoint.shはDocker社ビルドのイメージとはそもそも盛大に違うので、もともとがDocker社ビルドのものだったりすると非互換がある)

ちなみにDocker社ビルドの方はこっち

Oracle社ビルド用のイメージとして俺はこんなエイリアスを用意していて(そもそもMySQLのDockerコンテナはバージョンごとのちょっとした動作確認をするのに便利、くらいにしか使わない)

dmysql ()
{
    sudo docker run -d -P -e MYSQL_ALLOW_EMPTY_PASSWORD=1 -e MYSQL_ROOT_PASSWORD="""" -e MYSQL_ROOT_HOST=""%"" --restart=on-failure mysql/mysql-server:$1
}

このお引越しを経てこうなりました (バージョン番号の判定にまさに 日々の覚書: 明日使えない地味なシェルスクリプト用ワンライナー集 のやつを使っている…)

dmysql ()
{
    version_str="$1";
    [[ -z $version_str ]] && version_str="latest";
    version_int=$(echo $version_str | awk -F"[.-]" '{printf("%d%02d%02d\n", $1, $2, $3)}');
    if [[ $version_str = "latest" || $version_int -ge 80022 ]]; then
        repo="container-registry.oracle.com/mysql/community-server";
    else
        repo="mysql/mysql-server";
    fi;
    docker run -d -P -e MYSQL_ALLOW_EMPTY_PASSWORD=1 -e MYSQL_ROOT_PASSWORD="""" -e MYSQL_ROOT_HOST=""%"" $repo:$1
}

直近の5.7(5.7.44とか)はサポートしてない (そもそも引越し前にも引越し先にもないのでそうならざるを得ない)けどまあ仕方なし…

明日は yyamasaki1 さんです!

0 件のコメント :

コメントを投稿