概要
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
ファイルの以下の部分を書き換えます。
その他にも色々と項目がありますが、下記は最低限コンテナを立ち上げるために必要な設定なので参考にしてください。
それ以外は構築したい環境に合わせて書き換えてください。
### 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のスタート画面が表示されていれば問題ないです。