Mac で Laradock の構築

2020/01/18

事前準備

Install Docker Desktop on Macをダウンロードしてインストール

Laradock ダウンロード

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

ディレクトリ構成

laradock/.env  #Dockerコンテナイメージ & 設定
projects/ #Laracelプログラムソース

自分が開発する場合、複数のプロジェクトを一つのサーバで管理するため、projects とした。

例) projects/blog/ projects/shop/ ※Laravelプロジェクト直下に、.htaccess でmod_rewirte(Apacheの場合)

.env を作成(コピー)

$ cd laradock/
$ cp env-example .env

.env の設定

#Dockerのwebサーバーの同期ディレクトリ
#ホスト側のディレクトリを指定
APP_CODE_PATH_HOST=../projects/ 

#Dockerのstorage等を保存
#ホスト側のディレクトリを指定
DATA_PATH_HOST=../.laradock/data

#PHP
PHP_VERSION=7.3

PHP_INTERPRETER=php-fpm

# php-fpm で PostgreSQLドライバをインストール(MySQLはインストールしない)
PHP_FPM_INSTALL_PGSQL=true

PHP_FPM_INSTALL_MYSQLI=false

ホストの設定

コンテナー名が自動的にホスト名になるので、docker-compose.yml で明示的にホスト名を設定する


### PHP-FPM ##############################################
    php-fpm:
      hostname: laradock    //ホスト名を明示的に設定
      build:
        context: ./php-fpm

Docker ビルド & 起動

必要に応じてコンテナを指定して、ビルド & 起動(初回は時間がかかります)

$ docker-compose up --build -d apache2 postgres

Docker 起動確認

$ docker-compose ps
           Name                          Command               State                    Ports                  
---------------------------------------------------------------------------------------------------------------
laradock_apache2_1            /opt/docker/bin/entrypoint ...   Up      0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp
laradock_docker-in-docker_1   dockerd-entrypoint.sh            Up      2375/tcp, 2376/tcp                      
laradock_php-fpm_1            docker-php-entrypoint php-fpm    Up      9000/tcp                                
laradock_postgres_1           docker-entrypoint.sh postgres    Up      0.0.0.0:5432->5432/tcp                  
laradock_workspace_1          /sbin/my_init                    Up      0.0.0.0:2222->22/tcp  

ネットワーク情報の確認


$ docker network list

Docker 内部にアクセスしてLaravelプロジェクト作成


$ docker-compose exec workspace bash

IPアドレス確認


# hostname -i

プロジェクト作成


# composer create-project laravel/laravel project-name

Laravelプロジェクトの PostgreSQL 設定

指定したPostgreSQL ホスト、ユーザ情報を Laravelプロジェクトの .env を設定

DB_CONNECTION=pgsql
DB_HOST=postgres
DB_PORT=5432
DB_DATABASE=blog
DB_USERNAME=default
DB_PASSWORD=secret

.htadcess の設定

複数のLaravelプロジェクトを Dockerで動かしたいので、プロジェクト直下に .htaccess を作成して、server.php に mod_rewrite してやる。


    
        Options -MultiViews
    

    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} -d [OR]
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^ ^$1 [N]

    RewriteCond %{REQUEST_URI} (\.\w+$) [NC]
    RewriteRule ^(.*)$ public/$1

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ server.php

ブラウザアクセス

http://localhost/

Docker 停止

$ docker-compose stop
AWS ECR を使ってみる
Laravel7 でマルチ認証
Mac に AWS Client を設定する
Laravel 7 リリース
v-html でHTML表示する
Laravel で Vue コンポーネントを使う
Laravel で Nuxt.js を使ってみる(Docker環境)
いちから始める Docker -コンテナをビルド- (2020年)
いちから始める Docker -起動してみる- (2020年)
Mac で MySQL(8系)
composer で vendor がインストールできない
Eloquent の日付を Carbon で扱う
webpack 4 入門(npm編)
[Mac]容量を減らす
DIコンテナはじめ
freee SDKを Laravel で使ってみる
freee API を使ってみる
Segueを利用しない画面遷移
Xcode11.3 で XVim2 を利用する
Codable で JSONを読み込み
Webpack入門(yarn編)
MacからLaradock PostgreSQLで接続エラー
Dockerで不要なコンテナ・イメージを削除
Mac で Laradock の構築
yarn インストール&プロジェクト作成
Laravel 6.x 構築(Homestead編)
Composer インストール
nvm インストール
npm install が Mac でエラー
HTMLタグでカーソルが同時処理(ミラーリング)されてしまう
DI(依存性注入)
[Ubuntu]Let's Encryptで無料の証明書を利用する
[Apache]Apache2.4のアクセス制限が変更
[Ubuntu]rootのログインとsudo権限追加
タミヤ マイコンロボット工作セットをMacに接続してみた
pgAdimn4 でブラウザで開けなくなる
Java8 を HomebrewとjEnvで構築
Android Studio環境構築 2019
ロケールの再構築
vagrant グループに Apacheを追加
Linux2 Apache2 + PHP7.3 + PostgreSQL10
Anadondaの削除
[Mac]初期設定メモ(CentOS)
[Mac]PostgreSQL起動
FormRequest を利用したバリデーション
[Debian]Node.js安定板インストール
try-catch で Exception検知
Middlewareを利用したルートグループ化
namespaceを利用したルートグループ化
名前付きルートによるリダイレクト