LoginSignup
4
2

More than 3 years have passed since last update.

【備忘録】「docker-compose exec 〜」で 「cd」 使いたい。

Posted at

■何が起きたんだ。

先日僕はこんな記事を上げました。
【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

.
..
...

スクリーンショット 2020-04-22 0.17.06.png

僕「これこれぇ!!!!!!!!!!」

最強な良記事を発見しました。

どうやら実行するときは、2つポイントがあるみたいです。

  • 「コンテナ名」と「実行コマンド」の間にbash -cを入れる。
  • 実行コマンドは、"実行コマンド1 && 実行コマンド2" と、&&でコマンドで区切り、かつ "で囲む。

こちらに気をつけて、コマンドを作ってみると。

$ docker-compose exec workspace bash -c "cd laravel-test && php artisan --version"

実際に打ってみます。
結果がこちら。

Laravel Framework 6.18.8

.
..
...

やったぜ!!!!!!!

■参考文献

naughtLdyのメモ帳 - docker exec で cd する方法

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2