シェル(@takasqr)のブログ

WordPress用のmysql(5.7)をdockerfileで作る

1. dockerfileを作る

mysqlのdockerfileを作ります。mysqlのバージョンを5.7で指定します。

FROM mysql:5.7

5.7以降のバージョンで作った時はエラーが出ました。 dockerhubのwordpressページでもmysqlは5.7で作るようにサンプルコードがありました。

wordpress | dockerhub

この記事を書いた人

@takasqr アプリケーション開発が大好きなエンジニア。Vue、Swift、Electrom などでアプリを作って公開している。AWS や Firebase などのクラウドサービスも好き。

作ったアプリKeyScript

2. dockerfileをビルドする

dockerfileビルドする。

docker build -t mysql-custom-image:0.1 .
  • 0.1パージョン番号
  • mysql-custom-imageイメージ名

3. 作ったイメージのコンテナを作る

mysqlのコンテナをビルドします。 環境変数の部分は読み替えて下さい。

docker container run \
  --name mysql-custom-container \
  -e MYSQL_ROOT_PASSWORD=XXXXXXXX \
  -d \
  -m 448m \
  --oom-kill-disable=true \
  --restart=always mysql-custom-image:0.1
  • -e MYSQL_ROOT_PASSWORDmysqlのパスワード
  • mysql-custom-image先ほどビルドしたイメージを指定

4. 作ったコンテナに接続する

docker exec -it mysql-custom-container bash

おまけ(日本語対応)

mysqlの文字コードを変えるdockerfileです。 my.cnfにechoで追記してます。

ただ、このやり方が正しいのかはわかりません。。。 COPYでファイルを送り込んだり、ボリュームをマウントする方法の方がスマートな気がする。。。

FROM mysql:5.7

RUN echo '' >> /etc/mysql/my.cnf
RUN echo '[mysqld]' >> /etc/mysql/my.cnf
RUN echo 'character-set-server=utf8' >> /etc/mysql/my.cnf
RUN echo '' >> /etc/mysql/my.cnf
RUN echo '[client]' >> /etc/mysql/my.cnf
RUN echo 'default-character-set=utf8' >> /etc/mysql/my.cnf