Laradockを使うと、簡単にLaravel+Nginx+phpMyAdminの環境を構築する事ができます。
Dockerを使った事がない人でも、Laravel開発環境を構築できるように説明していきます。
Dockerって便利だなと思って貰えると嬉しいです!
目次
Dockerとは
Dockerは、コンテナ型仮想環境を、作成、配布、実行するためのプラットフォームです。
Dockerを利用すると、Dockerイメージを作成して使用するだけで開発環境を構築する事がする事ができます。(今回はLaradockを利用するので、Dockerイメージを作成する事もなく、より簡単です。)
環境構築の簡単さ以外にも、Dockerを使用するメリットはたくさんあります。
普遍な実行環境による冪等性の確保
実行環境構築とアプリケーション構成のコード化
実行環境とアプリケーションの一体化によるポータビリティー性の向上
システムを構成するアプリケーションやミドルウェアの構成管理の容易さ
是非この機会に、Docker入門をしてください!
Dockerについて詳しく説明しているサイト。
さくらのナレッジ、Docker入門
Docker
Laradockとは
Lara dockは、Docker上で動作する、オープンソースのLaravel開発環境です。
使用するには、DockerとGitのインストールが必要となります。
Laradockでの環境構築の流れ
Dockerのインストール
- ディレクトリ作ってLaradockをクローン
- 設定ファイルの作成
- コンテナを初期化
- Laravelプロジェクトの作成
- 共有ディレクトリの設定変更
- コンテナの再起動・変更の反映
- Laravelプロジェクトの確認
Dockerのインストール
右側にある会員登録、を選択して会員登録を完了させてください。
会員登録
次に画面中央部にある、DownloadfromDockerStoreボタンをクリック→画面右にあるGetDockerを選択してください。
公式サイト
Docker.dmgがダウンロードできたらDocker.dmgを開いて書かれている通りに進めていきます。
最後にGotitボタンを押して、Docker is runnningになれば成功です!
ディレクトリ作ってLaradockをクローン
好きな名前のディレクトリを作成して、Laradockをクローンします
mkdir laradock_docker
cd laradock_docker
git clone https://github.com/laradock/laradock.git
設定ファイルの作成
STEP3 Laradockの.envファイルの編集
laradockディレクトリに移動してenvファイルを作成
cd laradock
cp env-example .env
コンテナを初期化
コンテナとは、OSとアプリケーションを同梱した箱で、Dockerイメージを基に作成されます。
Docker Composeはyml形式の設定ファイルで、複数コンテナをまとめて管理する事ができます。
ymlについては以下の記事でチェックしてください。
docker compose upで、docker-compose.yamlファイルを基にコンテナを作成、起動します。
初回のみ、10分程度時間がかかります。
-d オプションをつける事で、コンテナがバックグラウンドで起動し、実行し続けます。
docker-compose up -d nginx mysql workspace phpmyadmin
Laravelプロジェクトの作成
workspaceコンテナに入ってlaravelプロジェクトの作成をします。
まずは、workspaceコンテナに入りましょう。
docker-compose exec --user=laradock workspace bash
次に、Laravelの新規プロジェクトを作成します。
最後の部分で使用するlaravelのバージョンを指定する事ができます。
composer create-project laravel/laravel laravel-project --prefer-dist "5.7"
現在のlaradock_dockerのディレクトリ構成は以下のようになっています。
├── laradock
│ ├── DOCUMENTATION
│ ├── LICENSE
│ ├── adminer
│ ├── aerospike
│ ├── apache2
│ ├── aws
│ ├── beanstalkd
│ ├── beanstalkd-console
│ ├── caddy
│ ├── certbot
│ ├── docker-compose.sync.yml
│ ├── docker-compose.yml
│ ├── docker-registry
│ ├── docker-sync.yml
│ ├── docker-web-ui
│ ├── elasticsearch
│ ├── env-example
│ ├── gitlab
│ ├── grafana
│ ├── haproxy
│ ├── hhvm
│ ├── ide-codiad
│ ├── ide-icecoder
│ ├── ide-theia
│ ├── ide-webide
│ ├── ipython
│ ├── jenkins
│ ├── jupyterhub
│ ├── kibana
│ ├── laravel-echo-server
│ ├── laravel-horizon
│ ├── logs
│ ├── maildev
│ ├── mailhog
│ ├── mariadb
│ ├── memcached
│ ├── minio
│ ├── mongo
│ ├── mongo-webui
│ ├── mssql
│ ├── mysql
│ ├── neo4j
│ ├── nginx
│ ├── percona
│ ├── pgadmin
│ ├── php-fpm
│ ├── php-worker
│ ├── phpmyadmin
│ ├── portainer
│ ├── postgres
│ ├── postgres-postgis
│ ├── rabbitmq
│ ├── redis
│ ├── rethinkdb
│ ├── selenium
│ ├── solr
│ ├── sync.sh
│ ├── thumbor
│ ├── travis-build.sh
│ ├── varnish
│ └── workspace
└── laravel-project
├── app
├── artisan
├── bootstrap
├── composer.json
├── composer.lock
├── config
├── database
├── package.json
├── phpunit.xml
├── public
├── readme.md
├── resources
├── routes
├── server.php
├── storage
├── tests
├── vendor
└── webpack.mix.js
先ほどログインしたworkspaceコンテナ上のvar/wwwが仮想環境側の共有ディレクトリ
物理環境側の共有ディレクトリは、laradock_docker > laravel-projectとなります。
共有ディレクトリの設定変更
laravel-projectを共有ディレクトリに設定する為に、laradockディレクトリのenvファイルを編集します。
.envファイルの上から8行目、APP_CODE_PATH_HOST=../を以下のように書き変えてください。
MYSQLのバージョンをlatestから5.7に変更してください。
APP_CODE_PATH_HOST=../laravel-project
MYSQL_VERSION=5.7
laravel-project側の.envの変更
laravel-project側の変更をしないと、migration時に、PDOException::(“SQLSTATE[HY000] [2002] Connection refused”)エラーが出ますので以下のように変更してください。
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=laradock
DB_USERNAME=laradock
DB_PASSWORD=secret
コンテナの再起動・変更の反映
Dockerでコンテナを停止する為には、docker-compose stopコマンドを使用します。
Laradockディレクトリに移動し、一度コンテナを停止して、再起動しましょう。
exit
docker-compose stop
docker-compose up -d nginx mysql phpmyadmin
laravelプロジェクトの確認
localhostにアクセスしてみましょう。
localhost:8080にアクセスするとphpmyadminを利用する事ができます
参考
Vagrant vs. Docker
個人開発環境をvagrantで建てるべきか、dockerで建てるべきか
VagrantとDockerについて名前しか知らなかったので試した
[Laravel & Docker 環境構築 with Laradock](https://qiita.com/shunichi_com/items/9b09c5949233b88b9a4a
Docker/Kubernetes実践コンテナ開発入門

WINDII

最新記事 by WINDII (全て見る)
- Nuxt.js + Contentful。HeadlessCMSでポータルサイトを作る - 2019年12月28日
- IOSアプリをAppStoreに公開する手順書(Ionic) - 2019年9月11日
- IonicAcademyでIonic&Angularでのアプリ開発を学ぶ - 2019年8月30日
この記事へのコメントはありません。