私は PHP-FPM Docker コンテナーでプロジェクトを実行しています (構成ファイルの詳細は以下を参照)。コンテナを構築して Composer を実行しようとすると、PHP 拡張機能が見つからないことを報告するエラーが表示されます。ただし、私のビルド ファイルはこれらの拡張機能をカバーしていると思います (下記の docker/php-fpm/Dockerfile
を参照)。
コンテナはデフォルト バージョンとして php8.2 で構築されていることがわかりました。シンボリックリンクを変更してデフォルトのバージョンをphp8.1に戻すことはできましたが、これは正しい解決策ではないようです。誰かがより良い解決策を提案できますか?
コンテナが 8.2 を実行していることを確認するにはどうすればよいですか:
コンテナ内で php --version
を実行すると、次の結果が得られます:
その後、どのphp
が私に与えてくれました:
/etc/alternatives
にリンクされている PHP バイナリへのシンボリックリンクをたどりました:
これは私には正しくないようです。それらを 8.1 バージョンに再リンクすることができ、すべてが正常に動作しているように見えますが、コンテナーを再構築するとどうなりますか?
私のファイルの詳細:
docker-compose.yml
docker-compose.override.yml
docker/php-fpm/Dockerfile
これは、私がロードしていた拡張機能が原因であることが判明しました。 docker/php-fpm/Dockerfile に php-xdebug をインストールしました。これにより、コンテナーが PHP8.2
をロードしました。バージョン 8.1 を指定してください
php8.1-xdebug
問題は解決しました。GitHub での私の質問に答えてくれた luispabon に感謝します。彼は画像に問題があるに違いないと考えました。 https://github.com/phpdocker-io/base-images/issues/ 62