LaraDock 開発環境構築


1. git インストール

gitはここ

2. dockerインストール

dokcer id を取得して以下からインストールください。
windowsはここ
macはここ

3. LaraDock クローン

ホームディレクトリにdevを作成してそこにcloneします。

$ cd ~
$ mkdir dev
$ cd dev
$ git clone https://github.com/Laradock/laradock.git

4. LaraDock カスタマイズ(mySql)

$ cd laradock
$ cp env-example .env

.envのmysqlのバージョンを固定するため、以下のファイルを編集します。

laradock/.env
MYSQL_VERSION=5.7.22

PHP バージョン変更(最新版では不要)

laradock/.env
PHP_VERSION=7.3

5. LaraDock カスタマイズ(nginx)

project.localというURLで自分のLaravelプロジェクトにアクセスできるようにします。

$ cd nginx/sites
$ cp laravel.conf.example project.conf

larave.conf.exampleではlaravelというフォルダで動かすようにかかえれている。
そのlaravel部分をprojectに書き換えます。

project.conf
server {

    listen 80;
    listen [::]:80;

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

    server_name project.local;
    root /var/www/project/public;
    index index.php index.html index.htm;

    location / {
         try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~ \.php$ {
        try_files $uri /index.php =404;
        fastcgi_pass php-upstream;
        fastcgi_index index.php;
        fastcgi_buffers 16 16k;
        fastcgi_buffer_size 32k;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        #fixes timeouts
        fastcgi_read_timeout 600;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }

    location /.well-known/acme-challenge/ {
        root /var/www/letsencrypt/;
        log_not_found off;
    }

    error_log /var/log/nginx/project_error.log;
    access_log /var/log/nginx/project_access.log;
}

6. ローカルアドレスの設定

(mac)sudo vim /private/etc/hosts
(win)c:\windows\system32\driver\etc\hosts

※windowsの場合は、管理者権限で修正します。
いったん、デスクトップへコピーして
編集して、
戻す

127.0.0.1   project.local
::1 project.local

7. データベースの作成

作業ディレクトリ: laradock/mysql/docker-entrypoint-initdb.d/

hrsiiMac:laradock hrsi$ pwd
/Users/hrsi/dev/laravel/laradock

$ cd mysql/docker-entrypoint-initdb.d/
$ cp createdb.sql.example createdb.sql

$のコメントを外し、以下のように編集します。

createdb.sql
CREATE DATABASE IF NOT EXISTS `project` COLLATE 'utf8_general_ci' ;
GRANT ALL ON `project`.* TO 'default'@'%' ;

データベースを作成します。

作業ディレクトリ: laradock


#mysql起動

$ docker-compose up -d mysql


データベースコンテナに入る
$ docker-compose exec mysql bash

# rootユーザーでsqlを実行
# 「Enter password:」と表示されるので、rootと入力
mysql -u root -p < /docker-entrypoint-initdb.d/createdb.sql

# DBが作成されたか確認しましょう。
# projectがあればok
mysql -u root -p
show databases;


#データベースインポート
# mysql -uroot -proot waterbus < /docker-entrypoint-initdb.d/db.sql

8. LaraDock起動

作業ディレクトリ: laradock

#一度停止
$ docker-compose stop

docker-compose up -d nginx mysql

(ダウンロードで時間かかります。)

以下の表示になればOK

エラーが出たら、
docker-compose down
して、
再び、
docker-compose up -d