mysqlのDockerfileの作成についてです。
mysql8.0からの認証方式はcaching_sha2_passwordが採用されていますが、接続側もこの認証方式に対応していない場合はうまくログインできません。
このため、従来の認証方式であるmysql_native_passwordでログイン可能なようにDockerfileを作成します。
Dockerファイル作成
Dockerfile作成の前に認証方式を変更するファイルを作成します。
ファイル名はdefault-authentication.cnfというファイルを作成し、以下のとおり記載します。
[mysqld]default_authentication_plugin= mysql_native_passwordそして、以下のDockerfileを準備します。
FROM mysql:latest
EXPOSE 3306ADD default-authentication.cnf /etc/mysql/conf.d
CMD ["mysqld"]これで、最新版のmysqlを使用しつつ、コンテナ側のポート3306を開放した状態にになります。
後はdocker runするときに、任意のローカルポートと3306を紐付ければ、ローカルからアクセス可能になります。