Laravel Sailを起動しようとすると、failed: post is already allocated と表示された場合は、ポート番号を変えてみましょう。
このメッセージは「すでにポート番号が使われているよ」という意味です。
ポート番号が他のかぶってしまっているので、番号を変えてあげればOKです。手順を説明していきますね。
sail up実施後 port is already allocatedと表示されたらポート番号を変えよう
まずは、どの部分でポート番号が被っているのか、確認してみましょう。
どの部分でポート番号が被っているかをチェック
たとえば、下記のようにエラーが表示されたとします。
「0.0.0.80 failed」と表示されており、この部分が被っているようです。
続いて、下記コ80マンドを実行して、コンテナの一覧を表示させます。
1 |
docker ps |
一覧で表示されます。
小っちゃくて見ずらいですが
一覧の中から、PORTの列が「0.0.0.80」となっているものを探します。赤線部分が該当しますね。かぶらないように、この部分のポート番号を変更します。次の項目に進んでください。
ちなみにこの段階で、使用していないプロジェクトやアプリと番号が被っていることが判明した場合には、該当のプロジェクトやアプリを停止すればOKです。
ポート番号の変更
まずはプロジェクト内のdocker-composer.ymlファイルを開きます。APP_PORT:-80 とある部分が変更が必要な箇所となります。
今回はここを APP_PORT:-8081 に変更します。8081は、他の番号でも構いません。使われていないポート番号を指定するようにしてください。
【docker-composer.yml】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# For more information: https://laravel.com/docs/sail version: '3' services: laravel.test: build: context: ./vendor/laravel/sail/runtimes/8.2 dockerfile: Dockerfile args: WWWGROUP: '${WWWGROUP}' image: sail-8.2/app extra_hosts: - 'host.docker.internal:host-gateway' ports: - '${APP_PORT:-8081}:80' |
次にプロジェクトの.envを開きます。今回の場合は、ファイル内に下記のように、docker-composer.ymlに入れたポート番号を追加しておきます。
【.env】
1 |
APP_PORT=8081 |
これで準備OKです。再度sail up をお試しください。
ちなみに複数のプロジェクトを同時起動したい場合には、上記以外にも各種ポート番号の変更が必要となります。
ほか、Laravel Sailでの環境構築に悩んだらこちらを見てください。