この内容は2019/12/17時点の話です。
あなたがこの記事をご覧になっているころには、LaraDockが対策済みになっているかもしれません。
(きっとこの記事を書いている最中にでも修正されているに違いない。)
始めに
本記事はDocker ComposeのプロジェクトであるLaradockのPHP7.4対応版の、以下のサービスを動作させることを目的としています。
- workspace
- nginx
- php-fpm
- php-worker
- mysql
他のコンテナの動作については言及しません。
各コンテナをビルドする際に変更したファイルと変更箇所
1. mysql/my.cnf
MySQL8を使いたいのでデフォルトに認証方式を変更する。
mysql/my.cnfの最終行に追記
+ default_authentication_plugin=mysql_native_password
2. php-fpm/Dockerfile
--with-libzipオプションがなくなったから削除。
php-fpm/Dockerfileの54行目付近
- docker-php-ext-configure zip --with-libzip && \
+ docker-php-ext-configure zip && \
3. php-worker/Dockerfile
oniguruma-devが必要らしい。
php-worker/Dockerfileの32行目付近
- supervisor
+ supervisor \
+ oniguruma-dev
--with-libzipオプションがなくなったから削除。
php-worker/Dockerfileの70行目付近
- docker-php-ext-configure zip --with-libzip && \
+ docker-php-ext-configure zip && \
追伸1
LaradockはPHPのiniファイルで、error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
と指定されているため、array
かstring
以外の型に対して配列スタイルでアクセルするとNotice警告でエラー扱いになります。
依存関係のライブラリが対応していないケースがあるため、しっかり動作検証を行う必要がありそうです。
(実際に手元の開発環境で発生しました…。)
追伸2
php本家ドキュメント(https://www.php.net/)の調子が悪いように感じる…。