0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

M1 mac + laradockのapache2とMySQLエラー回避(おまけXdebug3設定)

Posted at

M1 macでのlaradockの問題点

仕事でlaravelを使用しており、ローカル開発環境としてlaradockをIntel macで使用していましたが、最近M1 macに移行したところ、laradockでいくつか問題点があったので回避策を調べました。

問題1 apache2が起動しない

まず、M1ではapache2のコンテナが起動しません。

方法

/apache2/Dockerfileを修正

// 1行目を修正
FROM --platform=linux/x86_64 webdevops/apache:ubuntu-18.04

// 最後の行に下記を追加
RUN wget -O "/usr/local/bin/go-replace" "https://github.com/webdevops/goreplace/releases/download/1.1.2/gr-arm64-linux" \
    && chmod +x "/usr/local/bin/go-replace" \
    && "/usr/local/bin/go-replace" --version

ちなみにnginxはM1でも普通に動きます

問題2 MySQLが起動しない

同様にMySQLも起動しません。
ネットで調べるといろいろ情報がありますが、自分の場合は下記の変更だけで起動しました。

方法

/mysql/Dockerfileを修正

// 2行目を修正
FROM --platform=linux/x86_64 mysql:${MYSQL_VERSION}

これで起動しない場合は、.envDATA_PATH_HOSTで指定しているディレクトリを削除してください。

おまけ

Xdebug3の設定

PHPのバージョンによっては(PHP8.0など)Xdebugのバージョン3がインストールされますが、設定のパラメータ名がバージョン2から変わっており、うまくPhpStormでステップ実行ができませんでした。

方法

/php-fpm/xdebug.ini/workspace/xdebug.iniの最後の行に下記を追加

xdebug.client_host="host.docker.internal"
xdebug.discover_client_host=0
xdebug.client_port=9000
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.output_dir="~/xdebug/phpstorm/tmp/profiling"

.envのWORKSPACE_INSTALL_XDEBUGPHP_FPM_INSTALL_XDEBUGtrueに変更してください。

PhpStormでステップ実行すると、ポート周りのワーニングが出ますが、一応ステップ実行はできます。

おまけ2

環境構築のコマンド一覧

コンテナビルド

LAMPとredis、phpmyadmin、redis-webuiを構築

docker-compose build --no-cache apache2 php-fpm mysql workspace redis phpmyadmin redis-webui

コンテナ起動

docker-compose up -d apache2 mysql workspace redis phpmyadmin redis-webui

サーバーの中からlaravelのコマンドやマイグレーションをしたい時

docker-compose exec workspace bash

サーバーにsshで入ったような時のような感じで操作できます。

コンテナ停止

docker-compose stop

コンテナ削除

docker-compose down

phpmyadminへのアクセス(デフォルト設定)

localhost:8081

サーバー:mysql
ユーザー:root
パスワード:root

redis-webuiへのアクセス(デフォルト設定)

localhost:9987

認証ID:laradock
認証PW:laradock

コンテナ再構築

エラーやPHPバージョン変更などでコンテナを再構築するときは、自分は下記のように一旦コンテナを削除してから再構築してます。
もっと簡略化できる場合もあります。

docker-compose down
docker-compose build --no-cache apache2 php-fpm mysql workspace redis phpmyadmin redis-webui
docker-compose up -d apache2 mysql workspace redis phpmyadmin redis-webui

うまくいかない時

上記でも書きましたが、うまくいかない時は.envDATA_PATH_HOSTで指定しているディレクトリを一旦削除してから、buildすると直る場合があります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?