1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Laravel9 Sail インストール

Last updated at Posted at 2021-05-10

検証環境

  • Windows 10 Pro
  • Docker Desktop for Windows     

1.Docker Desktop for Windowsのインストール

Docker Desktop for Windowsをインストールします。

2. Windows Subsystem for Linux 2(WSL2)がインストールされ、有効になっていることを確認する。

2-1 wslを確認する。

Windows Terminalを使用して、以下のコマンドにより、確認します。

terminal
wsl --status

WSL 2 カーネル ファイルが見つかりません。カーネルを更新または復元するには、'wsl.exe --update' を実行してください。
上記メッセージが表示された場合、カーネルを更新します。

terminal
wsl --update
terminal
wsl -l -v

以下のメッセージが表示された場合は、インストールされていません。

Linux 用 Windows サブシステムには、ディストリビューションがインストールされていません。
ディストリビューションは Microsoft Store にアクセスしてインストールすることができます:
https://aka.ms/wslstore

インストールされていない場合は、wsl2をインストールします。

参考サイト

2-2 wslを最新に更新する。

terminal
wsl --update

2-3 インストールするバージョンをWSL 2とする。

terminal
wsl --setdefault 2

2-4 インストールできるディストリビューションを確認する。

terminal
wsl -l -o
インストールできる有効なディストリビューションの一覧を次に示します。
wsl --install -d <Distro>' を使用してインストールします。

NAME            FRIENDLY NAME
Ubuntu          Ubuntu
Debian          Debian GNU/Linux
kali-linux      Kali Linux Rolling
openSUSE-42     openSUSE Leap 42
SLES-12         SUSE Linux Enterprise Server v12
Ubuntu-16.04    Ubuntu 16.04 LTS
Ubuntu-18.04    Ubuntu 18.04 LTS
Ubuntu-20.04    Ubuntu 20.04 LTS

2-5 ディストリビューションを指定してインストールする。

今回は、Ubuntuを指定します。

terminal
wsl --install -d Ubuntu 

インストールの最後にディストリビューションのユーザーとパスワードの設定があります。
ユーザーとパスワードは忘れないように控えておきます。

2-6 インストールを確認する。

terminal
wsl -l -v

以下のメッセージが表示されれば、インストールが完了しています。

  NAME                   STATE           VERSION
* Ubuntu                 Running         2

3. wsl環境でCurlを実行し、プロジェクトを作成する

3-1 Windowsターミナルを起動します。wslコマンドによりlinux環境に入ります。

terminal
wsl
Welcome to Ubuntu 20.04.2 LTS (GNU/Linux 5.4.72-microsoft-standard-WSL2 x86_64)

3-2 プロジェクトを格納するディレクトリを作成し、ディレクトリを移動します。

linux環境より

terminal
mkdir Laravel
cd Laravel 

3-3 curlコマンドによりプロジェクトを作成します。

今回はexample-appという名前のプロジェクトを作成します。

terminal
curl -s https://laravel.build/example-app | bash
 _                               _
| |                             | |
| |     __ _ _ __ __ ___   _____| |
| |    / _` | '__/ _` \ \ / / _ \ |
| |___| (_| | | | (_| |\ V /  __/ |
|______\__,_|_|  \__,_| \_/ \___|_|

Warning: TTY mode requires /dev/tty to be read/writable.
    Creating a "laravel/laravel" project at "./example-app"
    Installing laravel/laravel (v8.5.16)
      - Downloading laravel/laravel (v8.5.16)
      - Downloading laravel/laravel (v8.5.16)
      - Downloading laravel/laravel (v8.5.16)
      - Installing laravel/laravel (v8.5.16): Extracting archive
    Created project in /opt/example-app
.
.
.

Application ready! Build something amazing.
Sail scaffolding installed successfully.

Please provide your password so we can make some final adjustments to your application's permissions.

[sudo] password for user:

Thank you! We hope you build something incredible. Dive in with: cd example-app && ./vendor/bin/sail up

linuxディストリビューションのパスワード入力を求められますので、2-5で設定したパスワードを入力します。

4. ポート番号を設定する

4-1 example-app/docker-compose.ymlファイルを確認します。

docker-compose.yml
# For more information: https://laravel.com/docs/sail
version: '3'
services:
    laravel.test:
        build:
            context: ./docker/8.0
            dockerfile: Dockerfile
            args:
                WWWGROUP: '${WWWGROUP}'
        image: sail-8.0/app
        ports:
            - '${APP_PORT:-80}:80'
        environment:
            WWWUSER: '${WWWUSER}'
            LARAVEL_SAIL: 1
        volumes:
            - '.:/var/www/html'
        networks:
            - sail
        depends_on:
            - mysql
            - redis
            - selenium
    mysql:
        image: 'mysql:8.0'
        ports:
            - '${FORWARD_DB_PORT:-3306}:3306'
        environment:
            MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
            MYSQL_DATABASE: '${DB_DATABASE}'
            MYSQL_USER: '${DB_USERNAME}'
            MYSQL_PASSWORD: '${DB_PASSWORD}'
            MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
        volumes:
            - 'sailmysql:/var/lib/mysql'
        networks:
            - sail
        healthcheck:
          test: ["CMD", "mysqladmin", "ping"]
.
.
.
networks:
    sail:
        driver: bridge
volumes:
    sailmysql:
        driver: local
    sailredis:
        driver: local
    sailmeilisearch:
        driver: local

laravel.testコンテナとmysqlコンテナのポート番号が環境変数となっています。

4-2 .envファイルにポート番号を設定する。

example-app/.envファイルにホストOSの環境に合わせてポート番号を設定します。
今回は、ホストOSのポート番号3306と80が使用中であったため、設定します。
以下の記述をexample-app/.envファイルの最後に設定します。

.env
.
.
.

FORWARD_DB_PORT=3305
APP_PORT=81

5.sail upによりSailを起動する

sail up により起動します。

terminal
cd ./example-app
./vendor/bin/sail up -d
...
Creating example-app_redis_1       ... done
Creating example-app_mysql_1       ... done
Creating example-app_selenium_1    ... done
Creating example-app_mailhog_1     ... done
Creating example-app_meilisearch_1 ... done
Creating example-app_laravel.test_1 ... done

コンテナが起動できたことを確認します。

6.ブラウザよりアクセス

http://localhost:81
image.png

画面が表示されます。

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?