laradockを使ったlaravelの環境構築についてざっくり流れをまとめました。
docker自体初めてだったので備忘録としてメモっときます。
###前提
・dockerがインストールされていること
・gitができる環境であること
###➀作業ディレクトリ内にlaradockをクローン
$ mkdir project
$ cd project
$ git clone https://github.com/Laradock/laradock.git
ここでは作業ディレクトリはproject。
laradockはgitのクローンによって取り込みます。
こんな感じでlaradockのディレクトリができると思います。
###➁設定ファイル.envを作成
laradockでは各コンテナの環境変数の設定は.envファイルに定義します。これらはdocker-compose.ymlファイルに適用します。
laradock内のenv-exampleをコピーして.env作成します。
$ cd laradock
$ cp env-example .env
###➂.envを編集する
####mysqlの設定
mysqlのバージョンはデフォルトではlatestとなっており、そのままだと8.0系のバージョンとなるので5.7に変更しておきましょう。
なぜかというと8.0では認証などの改変があり、ログインできないなど問題が生じます。特にphpmyadminを使いたい場合は5.7にしておきましょう。
自分はここでつまずいて、めちゃくちゃ時間がとられました。
ユーザ名、パスワード等も変更します。
MYSQL_VERSION=latest → MYSQL_VERSION=5.7
MYSQL_USER=default → MYSQL_USER=root
MYSQL_PASSWORD=latest → MYSQL_PASSWORD=root
###➄コンテナの構築、起動
mysql、nginx、phpmyadminのコンテナを起動します。
workspaceなどのコンテナはnginxと依存関係にあるため、指定しなくても伴って立ち上がります。
$ docker-compose up -d nginx mysql phpmyadmin
docker-composeは複数のコンテナをまとめて管理する仕組みです。
docker-compose upのコマンドはdocker-compose.ymlに書いてある複数のコンテナの構築と起動を行うことができます。
###➅laravelのプロジェクトの作成
laravelのインストールにはcomposerやnodeなどのツールが用意されているworkspaceコンテナで行います。
まずはコンテナ内に入ります。
$ docker-compose exec workspace bash
execはコンテナのサービスを実行するためのコマンド。コンテナ内に入るにはbashをつけます。
composerでlaravelのプロジェクトを作成します。
$ composer create-project --prefer-dist laravel/laravel myapp
laravel側のDB設定もしておきます。
laravel内の.envファイルとconfig/database.phpの項目を変更します。
ユーザ名:root
パスワード:root
ホスト名:mysql
DB名:default
###➆laravelの場所を指定
.envのAPP_CODE_PATH_HOSTの項目を見てみるとデフォルトでは
作業ディレクトリが指定されています。
これを**APP_CODE_PATH_HOST=../myapp/**に修正します。
###➇マイグレーション
再びworkspaceコンテナに入りマイグレーションを行います。
$ php artisan migrate
###➈ブラウザからアクセス
ブラウザからhttp://localhostにアクセスしてlaravelのホームページが表示されれば成功。
###➉phpmyadminにアクセス
http://localhost:8080にアクセスします。
サーバ:mysql
ユーザ名:root
パスワード:root
これらを入力してログインできればOK。
テーブルが作成されているか確認しましょう。
###最後に
laradockでの環境構築はとても簡単で、とりあえずdockerでlaravelを立ち上げてみたい人には合ってると思います。でもプロジェクトが必要以上に大きくなること、またdockerに対する知識がなくてもできてしまうように感じられます。
もう少しdockerについて理解を深めるためにはlaradockを使わない方法もやってみるといいと思います。
そちらの方法の記事も書きましたので良ければどうぞ→https://qiita.com/rope19181/items/10da72374839630af83b