docker Laravel

LaradockでLaravel開発環境(Docker Toolbox編)MySQL対策

更新日:

Windows 10 Homeユーザー向けDocker環境でMySQLが起動しない問題

Laradock公式ドキュメントの手順にそってコンテナを実行してみました。

Mac環境では問題なく動作しましたが、Windows10 Home環境ではMySQLコンテナが起動しなかったため対策した記録です。
同様のことでお困りであれば参考にしてみてください。

公式ドキュメントの手順

githubからlaradockをクローンします。

git clone https://github.com/Laradock/laradock.git

クローンして出来たlaradockディレクトリに移動。
.envファイルを作成します。

cp env-example .env

コンテナを起動します。

docker-compose up -d nginx mysql

公式にはもっとオプションが設定されていますが、最小限の環境を立ち上げるならWebサーバー(nginx)とDBサーバー(MySQL)があればOKです。

ノーオプションで起動するととんでもなく時間がかかるのでやめといたほうが無難です。

Mac+DockerDesktopだと問題なく立ち上がりますが、Windows10 home+ Docker Toolbox環境だとMySQLが起動しません。
正確には起動してすぐに終了しています。

docker-compose ps

とすると

laradock_mysql_1 が Exit(終了)しています。
MySQLの起動にオプションを追加すると問題が解消しましたのでご紹介します。

docker-compose.ymlの編集

MySQLの起動に条件を追加するためdocker-compose.ymlを編集します。
MySQLの項目に以下を追記してください。

mysql:
........中略

##以下を追記
command: --innodb-use-native-aio=0

この記述でコンテナを起動すると無事に立ち上がりました。

なぜ、その記述で起動するのか、そもそも何故ないと起動しないのか?
その検証は出来ていません。納期を乗り越えたら改めて調査しようと考えています。

-docker, Laravel

Copyright© Webエンジニア TKJ , 2019 All Rights Reserved.