tora_tora
@tora_tora

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Laravel Sailで作成したプロジェクトをGitHubリポジトリにpushして別のPCで使いたいのですが環境構築ができません

解決したいこと

Laravel Sailで作成したプロジェクトをGithubにPushして別のPCで利用しようと環境構築を行おうとLaravelのドキュメントにあったコマンドをたたきました。
しかし、エラーが出てきてしまってcomposer installが実行できず、vendorディレクトリの作成することができません。
解決方法をご存じの方、いらっしゃいましたら教えていただきたいです。

環境構築のために実行したコマンド

docker run --rm \
    -u "$(id -u):$(id -g)" \
    -v $(pwd):/opt \
    -w /opt \
    laravelsail/php80-composer:latest \
    composer install --ignore-platform-reqs

参考にしたLaravel ドキュメント

既存アプリケーションでComposer依存関係のインストール
https://readouble.com/laravel/8.x/ja/sail.html#:~:text=%E6%97%A2%E5%AD%98%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A7Composer%E4%BE%9D%E5%AD%98%E9%96%A2%E4%BF%82%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB

発生している問題・エラー

docker: Error response from daemon: the working directory 'C:/Program Files/Git/opt' is invalid, it needs to be an absolute path.
See 'docker run --help'.

自分で試したこと

C:/Program Files/Git/optディレクトリがそもそも存在しなかったので作成してみましたが、エラー内容は変わらずでした。

・オプションのパスを変えればいいのかとも変えてみましたがエラー文のパスが変わっただけで解決することはできませんでした。

環境

OS: Windows10

1

1Answer

OSが記載されていませんが、GitへのパスがWindowsの様でしたので。。
Windowsのコマンドプロンプトでしたら

cd リポジトリをチェックアウトしたディレクトリ
for /f "usebackq delims=" %A in (`cd`) do set PWD=%A
docker run --rm ^
    -v %PWD%:/opt ^
    -w /opt ^
    laravelsail/php80-composer:latest ^
    composer install --ignore-platform-reqs

当方の環境(Windows10)ですと、上記コマンドでcomposer installのような動作がされましたのでお試しいただけますと。

2Like

Comments

  1. @tora_tora

    Questioner

    ご回答ありがとうございます!
    OSの記載もれ申し訳ございません。
    いつもGitbashでLinuxのコマンドを使用していたのでコマンドプロンプトから行うという発想がありませんでした。

    無事、composer installを実行することができました。ありがとうございます。
    今後の知見のためにもしWindows10上でLinuxコマンドを使ってのインストール方法をご存じでしたら教えていただけると幸いです!
  2. WSLを利用することで、WindowsのコマンドプロンプトでもLinuxコマンドを利用できるみたいです。
    事前にMicrosoft StoreでUbuntuをインストールする必要があります。

    --------------------
    :: Ubuntuのバージョン確認(Ubuntu 20.04 LTSの場合)
    wsl -l -v
    wsl --set-default-version 2
    :: デフォルトで利用するディストリビューションの指定
    wslconfig /s Ubuntu-20.04
    --------------------

    導入に成功した場合、先頭に「wsl 」と付与することでLinuxコマンドを利用出来ます。

    --------------------
    :: wsl pwd
    /mnt/c/Users/xxxx
    --------------------

    ただし上記の通り、ファイルパスの先頭に「/mnt/」が付与されてしまいます。。

    今回の質問にあるコマンドも、wslで使えるようになるようです。
    (※ただしコマンドの改行はバックスラッシュから「^」に変更する必要があります)

    例)
    --------------------
    wsl docker run --rm ^
    -u "$(id -u):$(id -g)" ^
    -v $(pwd):/opt ^
    -w /opt ^
    laravelsail/php80-composer:latest ^
    composer install --ignore-platform-reqs
    --------------------

    WSL関係はこのあたりの記事が参考になるかもしれません。
    https://qiita.com/matarillo/items/61a9ead4bfe2868a0b86
    https://qiita.com/whim0321/items/ed76b490daaec152dc69
  3. @tora_tora

    Questioner

    wslは存在は知っていましたが使ったことはなかったので少し調べてみます!
    丁寧に教えてくださり、ありがとうございました!

Your answer might help someone💌