3
3

More than 3 years have passed since last update.

Laradock環境構築

Last updated at Posted at 2020-04-27

Mac OS X Catalina 10.15.4
初めて頑張ってLaradockで環境構築していきたいと思います。
おかしなところがありましたらぜひ指摘してください。

Laradockをクローン

まずは専用のディレクトリ作成して移動します。

$ mkdir laratest
$ cd laratest

そこでgit clone。

$ git clone https://github.com/LaraDock/laradock.git

LaraDockの.envファイル作成

そしたらlaradockというファルが作成されているはずなので、そこに移動します。

$ cd laradock

その中にあるenv-exampleファイルを.envとしてコピーします。

$ cp env-example .env

laraDockファイルの中はいろんなソフトがめっちゃ入ってます。
nginx, mysql, php, laravelだけなら特に.env操作の必要はなさそう。

Laradockの環境編集

Laradock内の.envファイルを編集します。
ただ公式ページ様では次のように.envファイル内に追加する記載があります。

DB_HOST=mysql
REDIS_HOST=redis
QUEUE_HOST=beanstalkd

これ以外にも少し必要。

スクリーンショット 2020-04-27 9.36.54.png

1、APP_CODE_PATH_HOST

[ ../ ] → [ ../laraapp ]に変更。プロジェクト名に変更ってことですね。

2、DATA_PATH_HOST

[ ~/.laradock/data ] → [ .laradock/data ] に変更。

3、MYSQL

スクリーンショット 2020-04-27 9.54.12.png

[ latest ] → [ 5.7 ]に変更。8.0系に比べて5.7系が安定しているみたいです。
MYSQL_DATABAE
MYSQL_USER
MYSQL_PASSWORD
とかはなんでも良さそうだけど、他の設定と揃える必要がある。
忘れないようにしないと。
とりあえずLaraDock内の.envファイルの設定と他を揃えます。

Laradock起動

Laradockを立ち上げて確認してみます。
コンテナ起動がupで、オプションで-dを付けるとバックグラウンドで動いてくれます。
とりあえずならnginxとmysqlを動かせばいいかと。

$ docker-compose up -d nginx mysql

...

Creating laradock_mysql_1            ... done
Creating laradock_docker-in-docker_1 ... done
Creating laradock_workspace_1        ... done
Creating laradock_php-fpm_1          ... done
Creating laradock_nginx_1            ... done

初回の起動のときはかなりpullしてくるので結構時間かかります。
完了したら上のような表示が出るはず。
起動してるか確認してみます。

スクリーンショット 2020-04-27 8.11.35.png

この中にlaradock_workspace_1コンテナが立ち上がってるのが確認できます。
このコンテナの中に移動します。

$ docker exec -it laradock_workspace_1 bash

root@74e5ba95e1d4:/var/www#

プロジェクト作成

移動できたら、まずはアップデートしときます。

root@74e5ba95e1d4:/var/www# apt-get update

終わったら、Laravelプロジェクトを作成します。下の例ではlaraappという名前で作ります。

root@74e5ba95e1d4:/var/www# composer create-project "laravel/laravel=6.0.*" laraapp

現状(2020/4/27)では6.0系がLTSでサポート長いので、これを選択しておきます。
https://readouble.com/laravel/7.x/ja/releases.html

作成が完了したら、ファイルが存在しているのを確認して、一旦コンテナをでます。

root@74e5ba95e1d4:/var/www# exit
$ docker-compose stop

Laravelプロジェクト内の環境

プロジェクト内に移動して、.envファイルを調整します。
さっきのやつと揃える。

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=default
DB_USERNAME=default
DB_PASSWORD=secret

パーミッション設定

webサーバーからの書き込み権限を与えるためにパーミッション設定します。
再度コンテナに入り、プロジェクトフォルダに移動します。

root@74e5ba95e1d4:/var/www/laraapp# chmod 766 storage
root@74e5ba95e1d4:/var/www/laraapp# chmod 766 bootstrap/cache

コンテナ再起動

docker-compose restart

マウント確認

laradock_nginx_1laradock_workspace_1をdocker inspectして、マウント確認

$ docker inspect laradock_nginx_1

...

"Mounts": [

...
            {
                "Type": "bind",
                "Source": "/Users/ユーザー/hoge/laratest/laraapp",
                "Destination": "/var/www/",
                "Mode": "cached",
                "RW": true,
                "Propagation": "rprivate"
            },
...
$docker inspect laradock_workspace_1

...

"Mounts": [

            ...

            {
                "Type": "bind",
                "Source": "/Users/ユーザー/hoge/laratest/laraapp",
                "Destination": "/var/www/",
                "Mode": "cached",
                "RW": true,
                "Propagation": "rprivate"
            },

...

この状態でlocalhostに接続してみます。
スクリーンショット 2020-04-27 17.48.53.png

はい、なんかおかしいですね。

nginx

laradockに移動して、ファイルを編集します。エディタはvimじゃなくてもいいです。

$ vim nginx/sites/default.conf

server {

    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    # For https
    # listen 443 ssl default_server;
    # listen [::]:443 ssl default_server ipv6only=on;
    # ssl_certificate /etc/nginx/ssl/default.crt;
    # ssl_certificate_key /etc/nginx/ssl/default.key;

    server_name localhost;
    root /var/www/public;    //ここがこうなってるはずなので、
    index index.php index.html index.htm;

    server_name localhost;
    root /var/www/laraapp/public;    //こうする プロジェクト名いれる
    index index.php index.html index.htm;

nginxのドキュメントルートを変更するとのこと。

これで接続してみます。
スクリーンショット 2020-04-27 18.01.02.png

やっと接続できました...
長かったですが、ありがとうございました。

参考記事

こちらの記事等をめちゃくちゃ参考にさせていただきました。
ありがとうございました。
LaradockでDockerによる開発環境を手軽に構築
Laradockを使ったLaravel開発環境構築
Laravel6 Laradockを使ってDocker環境構築を初めからやってみる

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