イベント
DockerでLaravelのローカル環境を構築するハンズオン(オンライン)
合計65人の方に参加申し込みいただきました。ありがとうございます🙏
discordのイベントチャンネルも50人以上オンラインになっておりハンズオンにしては大規模な開催となり嬉しく思います。
約12名の方に一緒にハンズオンしていただき、全員ハンズオン成功しました。
PHP Builders(ぴーえっちぴー びるだーず)
PHPerによる、PHPerのための、PHPを勉強する勉強会コミュニティです。
教えたい/教わりたい/勉強したい方を歓迎してます!
connpass内にDiscordグループの招待リンクがあります。
質問や相談、雑談などもできますので、気軽にご参加ください。
資料
- ハンズオン資料記事: https://qiita.com/ucan-lab/items/56c9dc3cf2e6762672f4
- 完成したリポジトリ: https://github.com/ucan-lab/docker-laravel-handson
宣伝
LaravelのOSSパッケージ開発を行なってます。
よければStarいただけると嬉しいです。
ハンズオン参加レポート
ガミネさん(@gaminessium)が参加レポートを書いてくださりました🙏
ハンズオン中の問題
ハンズオン中に発生したトラブルをまとめした。
docker compose コマンドがない
docker compose
コマンドは、docker desktop 3.2.1以降に技術プレビュー版としてリリースされた新しい docker
コマンドのサブコマンドです。
Docker for Mac, Docker for Windowsを予めアップデートしておく必要がある。
docker compose down -v がバグってる
docker compose
は技術プレビュー版のためか名前付きボリュームが削除されないバグがある。
修正済みですが、記事執筆時点(v1.0.14)ではまだリリースされてない模様です。
謎のエラー
ハンズオン中にでた謎のエラーです。
実はリハーサルしてて同じエラーが出ていました。結局原因はわからないままですがdocker desktopをrestartすることで解決しました。
マイグレーションでエラー
このエラーが出た時は、原因わからなくて少し焦ってたんですがチャットサポートしてくれた方が教えてくださりました。
$ docker compose exec app bash
root@28e246f56b19:/work# php artisan migrate
Illuminate\Database\QueryException
SQLSTATE[HY000] [1130] Host '172.22.0.2' is not allowed to connect to this MySQL server (SQL: select * from information_schema.tables where table_schema = laravel_local and table_name = migrations and table_type = 'BASE TABLE')
at vendor/laravel/framework/src/Illuminate/Database/Connection.php:678
674▕ // If an exception occurs when attempting to run a query, we'll format the error
675▕ // message to include the bindings with SQL, which will make this exception a
676▕ // lot more helpful to the developer instead of just the database's errors.
677▕ catch (Exception $e) {
➜ 678▕ throw new QueryException(
679▕ $query, $this->prepareBindings($bindings), $e
680▕ );
681▕ }
682▕
このエラーが発生した場合は
my.cnf
を作成する前にdocker compose up -d
でビルドしてしまった可能性が高いです。
(って自分のハンズオン記事の補足に書いてありました...)
$ docker-compose down --volumes
$ docker compose build db
$ docker compose up -d
docker compose down --volumes
は名前付きボリュームを削除してくれない問題がある
Firefoxでアクセスできない
普段Firefox使ってなかったので知らなかったです。
これはとても勉強になりました。
公開ポート番号を80から8080など別の番号に変更してもアクセスできるみたいです。
ネットワーク回線遅い問題
docker pullやcomposer install等、ネットワーク回線によってなかなか進めない人がいた。
これは各家庭にnuro光を導入してもらうことで解決。
予めdockerイメージをpullしておいたり、ネットワーク使う箇所は質問タイムや解説タイムに使うといいかもしれないです。
雷は防げない
当日は雷の鳴る中のハンズオンイベントとなりました。
雨の音や雷の音が響く中、ハンズオンイベントが進められていました。
何かしらトラブルは起きるだろうと予想していましたが、参加者の中に停電が発生してしまう方がいました。
ノートPCは生きててもルーター落ちたら通信できなくて詰みますね...
質問
ハンズオン中に出た質問をまとめます。
phpMyAdminを入れるにはどうしたらいいか?
今回のハンズオンの対象ではないですが、そんなこともあろうかと記事を書いておきました。
MySQLのGUIクライアントで接続したいのですがどうしたらいいか?
Sequel Proという便利なMySQLのGUIクライアントツールがありますが、MySQL8に対応できていませんでした。
後継アプリのSequel Aceというアプリを紹介している記事があったのでご紹介します。
最小限の環境でLaravelを動かしてみたい
docker-compose.yml
1ファイルでLaravel環境を作ることもできます。
webサーバーとdbサーバーなしの構成です。
感想
人数多かった割には大きな問題が起こることなく時間通りにハンズオン進めたのでとてもよかったです。
知らないエラーにも出会えて、私自身もとても勉強になりました。
都合が悪く参加できなかった方もいらっしゃるので、機会があればまたイベントを開催したいと思います。