Posted at

LaradockでLaravel開発環境をDocker上に構築する on Mac

More than 1 year has passed since last update.


概要

Laravelの開発環境をLaradockを用いてDocker上に構築しました。

出来る限りシンプルにできないかと考えてLaradockを使ってみたのですが、

意外と苦戦したりしなかったりしたので今後のための備忘録です。


Laradock

Laradock.io

laradock/laradock - github


A full PHP development environment for Docker.

Includes pre-packaged Docker Images, all pre-configured to provide a wonderful PHP development environment.


セットアップ方法の概要は公式ページにさらさらっと書いてあります。

公式ページを参考にして構築していきます。


環境構築


ディレクトリ構成

ディレクトリの構成は好みによると思いますが、僕は下記のようにしてます。

project-name

- project-name_app
- laradock_project-name

project-name_app -> ソースコードディレクトリ

laradock_project-name -> Laradockをcloneしてくるディレクトリ


Laradockの導入とDockerコンテナの起動


Laradockをgithubからclone

今回はプロジェクト単位でLaradockを導入します。

上記の laradock_project-name ディレクトリにLaradockのリポジトリをcloneしてきます。

$ cd my_project

$ git clone https://github.com/Laradock/laradock.git laradock_project-name


Laradockの環境設定

環境設定ファイルのexampleがあるので、それを .env としてコピーします。

$ cd laradock_project-name

$ cp env-example .env

.env ファイルの以下の部分を書き換えます。

その他にも色々と項目がありますが、下記は最低限コンテナを立ち上げるために必要な設定なので参考にしてください。

それ以外は構築したい環境に合わせて書き換えてください。


.env

### Paths #################################################

# Point to the path of your applications code on your host
APP_CODE_PATH_HOST=../project-name_app

# Point to where the `APP_CODE_PATH_HOST` should be in the container. You may add flags to the path `:cached`, `:delegated`. When using Docker Sync add `:nocopy`
APP_CODE_PATH_CONTAINER=/var/www:cached

# Choose storage path on your machine. For all storage systems
DATA_PATH_HOST=~/.laradock_project-name/data



Dockerコンテナの起動

下記のコマンドを実行します。

コンテナのStateがUpになっているのを確認できればOKです。

$ cd laradock_project-name

$ docker-compose up --build -d nginx postgres redis workspace
$ docker-compose ps
Name Command State Ports
-------------------------------------------------------------------------------------------------------------------
laradock-codenote_nginx_1 nginx Up 0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp
laradock-codenote_php-fpm_1 docker-php-entrypoint php-fpm Up 9000/tcp
laradock-codenote_postgres_1 docker-entrypoint.sh postgres Up 0.0.0.0:5432->5432/tcp
laradock-codenote_redis_1 docker-entrypoint.sh redis ... Up 0.0.0.0:6379->6379/tcp
laradock-codenote_workspace_1 /sbin/my_init Up 0.0.0.0:2222->22/tcp


ここまでの動作確認

ブラウザでlocalhostにアクセスして、nginxの404エラーが出ていれば大丈夫です。


Laravelの導入


workspaceの起動

workspaceというコンテナイメージがLaradockには用意されています。

workspaceはLaravelに必要なツールを一式用意してくれます。

composerなどのコマンドを叩く時はworkspaceを通して叩くことになります。

$ docker-compose exec workspace bash


Laravelのインストール

composerを利用してLaravelの新規プロジェクトを作成します。

$ composer create-project --prefer-dist laravel/laravel ./


Laravelの環境設定

Laravelのプロジェクトディレクトリに .env ファイルが作成されています。

ここに記載されているのがLaravelの環境設定になります。

Laradockの .env ファイルに記載した設定を同様に記載してください。


動作確認

DBの設定が上手く出来ているかどうかは、 php artisan migrate などを走らせて確認してください。

最後に、ブラウザでlocalhostにアクセスして、Laravelのスタート画面が表示されていれば問題ないです。