■何が起きたんだ。
先日僕はこんな記事を上げました。
【Mac】Laradock と PhpStorm を使って、Laravel + PHPUnit + Xdebug の簡単開発環境構築
そうです。僕はこの記事の通りの環境を構築するために奮闘していたんですね。
今回Laradockで環境を立ち上げた後、Laravelをcomposerでインストールしました。
その時使ったコマンドがこちら↓
# docker-compose exec {コンテナ名} {実行コマンド}
# workspaceコンテナに、「composer create-project --prefer-dist laravel/laravel=6.* laravel-test」 のコマンドを実行する
$ docker-compose exec workspace composer create-project --prefer-dist laravel/laravel=6.* laravel-test
このように、docker-compose exec
コマンドを華麗に使いこなし、優雅にローカル環境からコンテナ目掛けてコマンドを打っていました。
僕「よし、本当にLaravelが正しくインストールされたかを見てやろう」
そんな上から目線状態でこのコマンドを叩きました。
# 「php artisan --version」 はLaravelのバージョンを確認できます。
$ docker-compose exec workspace php artisan --version
するとこんなエラーが。
Could not open input file: artisan
僕「おー、そうだそうだ。
artisan
コマンドはLaravelプロジェクト内で実行するから、laravel-test
ディレクトリに移動しなきゃだな。」
と思いましたが、ここで手が止まりました。
僕「あれ、そもそも2回の命令を同時に投げたい時どうすれば良いんだ。。。」
■ググってみたら最強にジャストミートな記事を発見。
検索ワード:「
docker-compose
exec
cd
」
.
..
...
僕「これこれぇ!!!!!!!!!!」
最強な良記事を発見しました。
どうやら実行するときは、2つポイントがあるみたいです。
- 「コンテナ名」と「実行コマンド」の間に
bash -c
を入れる。 - 実行コマンドは、
"実行コマンド1 && 実行コマンド2"
と、&&
でコマンドで区切り、かつ"
で囲む。
こちらに気をつけて、コマンドを作ってみると。
$ docker-compose exec workspace bash -c "cd laravel-test && php artisan --version"
実際に打ってみます。
結果がこちら。
Laravel Framework 6.18.8
.
..
...