Edited at

LaradockでMySQL5.5を使う(Docker + Laravel)

More than 1 year has passed since last update.


環境


  • macOS Sierra

  • Docker 17.06.0-ce-mac18

  • Apache 2.4

  • CentOS 7.0

  • MySQL 5.5

  • Laravel 5.0


前提条件

Lardockの基本的な導入手順を踏み、docker-compose up -dコマンドでコンテナを起動する直前までの工程が終了していること

すでに起動してしまっている場合、Laradockで使用するMySQLのコンテナとイメージを一度削除してください。

コンテナを停止、ネットワークとともに削除するコマンドは下記のとおりです。

$ docker-compose down

イメージは削除されないので、

$ docker ls -a

で全てのイメージを表示し、laradockを導入してビルドしたMySQLのイメージを削除します。

laradock_mysqlとmysql 5.7があります。


導入手順


Dockerfileを書き換える

laradock/mysql配下のDockerfileを書き換え、DockerHubからpullしてくるMySQLイメージのバージョンを変更します。


- FROM mysql:5.7
+ FROM mysql:5.5

これだけです。


イメージをbuildしてコンテナを起動する

docker-compose up コマンドでlaradock/mysql/配下のDockerfileからMySQLのイメージをbuildし、コンテナを起動します。

オプションに-dをつけて実行すると、コンテナをバックグラウンドで起動し(デタッチドモード)、実行したままにできます。

また、今回はMySQLののみイメージをビルドするように指定します。

$ docker-compose up -d mysql

5.5-fpmのタグがついたphpのイメージと、それをもとにしたlaradock_php-fpmというイメージがビルドされていることを確認します。

$ docker image ls

laradock_mysql latest 6104906b149d 31 hours ago 256MB

mysql 5.5 17e9a1fe381e 2 weeks ago 256MB

laradock_mysql コンテナ内のPHPのバージョンが5.5になっていることを確認します。

オプションで--rmをつけると、対象のコンテナを実行後に削除してくれます。停止しているコンテナに入ることなくバージョン確認などができるので便利です。

コンテナがデタッチドモードで起動されている場合は無視されるので、--rmオプションはなくても同じ挙動になります。

$ docker-compose run --rm mysql mysql --version 

mysql Ver 14.14 Distrib 5.5.56, for linux-glibc2.5 (x86_64) using readline 5.1


Laradock Tips

デフォルトではストレージシステムのファイル群が~/.laradock/dataになっているので、ローカル環境のlaradockディレクトリ内に同期しておくと便利です。

$ cd laradock

$ mkdir .laradock/data

$ docker-compose up -d // コンテナ内のファイルがローカル環境に同期される