質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

1回答

3162閲覧

【Laravel】dockerのコンテナ内でphp artisanコマンドをうちたい

izumin123

総合スコア37

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2022/04/12 09:49

前提

Laravelで管理システムを作っており、開発環境はdockerです。
dockerのコンテナ外からphp artisan コマンドをから打ち込んだ後に、dockerのコンテナ内でphp artisanコマンドを打ち込むと、エラーが発生しました。

実現したいこと

dockerのコンテナ内で再度php artisanコマンドをうちたい

発生している問題・エラーメッセージ

コンテナ内でコマンドを打った時

$ php artisan -v Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 8.0.0". You are running 7.3.31-1~deb10u1. PHP Fatal error: Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 8.0.0". You are running 7.3.31-1~deb10u1. in /var/www/vendor/composer/platform_check.php on line 24

コンテナ外でコマンドを打った時

$ php artisan -V Laravel Framework 8.46.0

エラーの起きる直前に行ったこと

以下のサイトを参考にして作業を進めていた途中で、誤ってコンテナ外からコマンドを打ち込む
https://qiita.com/ucan-lab/items/55ec5c341fb5c228fe14

$ php artisan make:seeder TruncateAllTables

docker-compose.ymlの設定でコンテナ外とコンテナ内のファイル構造はリンクしているため、シーダーファイル自体は適切に作成されました。
しかし、コンテナ内でコマンドを打ち込むとエラーが発生するようになる。

試したこと

コンテナ内のPHPのバージョンを8.0以上にアップグレードしようと試みましたが、Homebrewがインストールできず止まっています。

情報が色々足らないかもしれませんが、何かアドバイスをいただけると助かります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

madoka-t

2022/04/12 10:33

依存関係の問題からPHP8が要求されているので、PHP8にバージョンアップしたいということで大丈夫ですか? Dockerコンテナは大抵何らかのLinuxディストリビューションをベースイメージにしているので、Homebrewで管理されてはいないと思いますよ。 PHPを実行しているDockerコンテナのイメージはわかりますか?
izumin123

2022/04/13 01:22

質問の回答として正しいか分かりませんが、$ docker psで確認した時のPHPのイメージは以下の通りです。 docker-laravel_php
izumin123

2022/04/13 01:29

以下サイトを参考にし、brewを使わないでPHPをアップデートしようとしましたが、途中でエラーが発生し止まっています。 ``` $ add-apt-repository ppa:ondrej/php Co-installable PHP versions: PHP 5.6, PHP 7.x and most requested extensions are included. Only Supported Versions of PHP (http://php.net/supported-versions.php) for Supported Ubuntu Releases (https://wiki.ubuntu.com/Releases) are provided. Don't ask for end-of-life PHP versions or Ubuntu release, they won't be provided. Debian oldstable and stable packages are provided as well: https://deb.sury.org/#debian-dpa You can get more information about the packages at https://deb.sury.org IMPORTANT: The <foo>-backports is now required on older Ubuntu releases. BUGS&FEATURES: This PPA now has a issue tracker: https://deb.sury.org/#bug-reporting CAVEATS: 1. If you are using php-gearman, you need to add ppa:ondrej/pkg-gearman 2. If you are using apache2, you are advised to add ppa:ondrej/apache2 3. If you are using nginx, you are advised to add ppa:ondrej/nginx-mainline or ppa:ondrej/nginx PLEASE READ: If you like my work and want to give me a little motivation, please consider donating regularly: https://donate.sury.org/ WARNING: add-apt-repository is broken with non-UTF-8 locales, see https://github.com/oerdnj/deb.sury.org/issues/56 for workaround: # LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php More info: https://launchpad.net/~ondrej/+archive/ubuntu/php Press [ENTER] to continue or ctrl-c to cancel adding it Exception in thread Thread-1: Traceback (most recent call last): File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner self.run() File "/usr/lib/python3.7/threading.py", line 865, in run self._target(*self._args, **self._kwargs) File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 688, in addkey_func func(**kwargs) File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 386, in add_key return apsk.add_ppa_signing_key() File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 252, in add_ppa_signing_key tmp_keyring, tmp_secret_keyring, signing_key_fingerprint, tmp_keyring_dir): File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 181, in _recv_key "--recv", signing_key_fingerprint, File "/usr/lib/python3.7/subprocess.py", line 323, in call with Popen(*popenargs, **kwargs) as p: File "/usr/lib/python3.7/subprocess.py", line 775, in __init__ restore_signals, start_new_session) File "/usr/lib/python3.7/subprocess.py", line 1522, in _execute_child raise child_exception_type(errno_num, err_msg, err_filename) FileNotFoundError: [Errno 2] No such file or directory: 'gpg': 'gpg' ```
madoka-t

2022/04/13 01:46

DockerFileのFROMで指定されているコンテナイメージか、docker-compose.ymlのimageで指定されているコンテナイメージが知りたいですね。 DockerFileとdocker-compose.ymlを質問に貼り付けることは可能でしょうか? dockerコンテナ内でPHPのバージョンアップをするより、コンテナ作成時点で必要なバージョンのPHPをインストールした方がよいので、DockerFileの修正をする必要があるのかなと思っています。
izumin123

2022/04/13 01:50

DockerFileのFROMで指定されているイメージです。 FROM php:7.4-fpm
guest

回答1

0

ベストアンサー

DockerFileのFROMで指定されているイメージです。
FROM php:7.4-fpm

DockerFileで使用しているベースイメージのPHPが7.4なので、PHP8を使いたいのであればFROM php:7.4-fpmFROM php:8.1-fpmに変更してコンテナをビルドし直せばPHP8が使えるようになり、コマンドも実行されるようになると思います。

投稿2022/04/13 01:57

madoka-t

総合スコア379

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

izumin123

2022/04/13 02:14 編集

Dockerfileを「FROM php:8.1-fpm」に変更し再度立ち上げましたが、エラー内容変わらずでした。 ■ エラー内容 Fatal error: Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 8.0.0". You are running 7.4.28. in /var/www/vendor/composer/platform_check.php on line 24 再度立ち上げたああと、コンテナ内ではphpコマンドが使えませんでした。 $ php -v command not found:php phpをインストールしたら、こんな感じになりました。 $ apt update;apt install -y php $ php -v PHP 7.3.31-1~deb10u1 (cli) (built: Oct 24 2021 15:18:08) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.3.31, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.3.31-1~deb10u1, Copyright (c) 1999-2018, by Zend Technologies
madoka-t

2022/04/13 02:27

PHPのバージョンが変わっていないという事はコンテナの再ビルドをしていない可能性はないでしょうか。 `docker build`か`docker-compose build`は実行しているでしょうか?
izumin123

2022/04/13 03:00

こんな感じで立ち上げています。 $ docker-compose up -d Creating network "docker-laravel_default" with the default driver Creating docker-laravel_php_1 ... done Creating docker-laravel_db_1 ... done Creating docker-laravel_nginx_1 ... done
izumin123

2022/04/13 03:04

docker-compose build したら、うまく起動しました!
izumin123

2022/04/13 03:04

ありがとうございます!!
izumin123

2022/04/13 03:06

いや、ブラウザ上でのエラーは解決したのですが、コンテナ内でコマンド打ち込んだ時のエラーは解決しませんでした。 $ php artisan -v Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 8.0.0". You are running 7.3.31-1~deb10u1. PHP Fatal error: Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 8.0.0". You are running 7.3.31-1~deb10u1. in /var/www/vendor/composer/platform_check.php on line 24
madoka-t

2022/04/13 03:52

dokcerコンテナ内のPHPは8系になりましたか? dockerコンテナに入るところからコマンドの実行まで含めて全ての実行結果を見せてもらうことはできますか? 可能なら質問の方に追記してください。
izumin123

2022/04/13 04:39

あ、解決しました。 dockerのnginxのコンテナ内に入って、エラーが出ていたのですが、dockerのphpのコンテナ内で確認したら、PHP8系になっており、php artisanコマンドが動作することが確認できました。 入るコンテナを間違えてました。 付き合っていただきありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問