53
56

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Dockerで超簡単にlaravel環境を構築する方法

Posted at

Dockerで超簡単にlaravel環境を構築する方法

今更感ありますが、試したら簡単すぎました。

使用環境

Mac環境での説明になります。
gitインストールされている前提での説明になります。
今回はNginxでの立ち上げにあります。(Apacheの場合でも途中まで一緒です。)

docker for macをインストール

docker for macをインストール。
※特にこだわりがなければStable版で問題ないです。

細かいdocker for macインストール方法は省きます。

ターミナルで動作確認

以下コマンドを実行し、正常に動作していることを確認

$ docker --version
$ docker-compose --version
$ docker-machine --version

バージョンそれぞれバージョンが表示されれば問題ありません。

laradock用ディレクトリ作成

好きなディレクトリにlaradock用ディレクトリ作成。
当方はDockerLaravelディレクトリを作成しました。

ディレクトリ移動します。
$ cd DockerLaravel

laradockリポジトリをcloneします

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

するとlaradockなるディレクトリがDockerLaravelディレクトリ内に作成しているので、移動します。

$ cd laradock

docker-composeコマンドを使用してlaradockを立ち上げる

以下コマンドを実行し、laradockを立ち上げます。

$ docker-compose up -d workspace

ここでエラーが出なければ次へ進んでください。

※※私は大量の__warning__と__error__が出ました。※※

エラーが出た方はlaradockディレクトリ内で以下のコマンドを実行して下さい。

$ cp env-example .env

.envファイルをコピーして作成してあげているだけです。

その後再び

$ docker-compose up -d workspace

を実行。

正常にlaradockが立ち上がっているか確認

$ docker-compose ps実行

laradock_workspace_1があれば問題ないです。

bashでログインします

$ docker exec -it laradock_workspace_1 /bin/bash

上記コマンドを実行しログインします。

laravelインストール

ログインした直後/var/wwwにいると思いますが、いなかったら$ cd /var/wwwで移動してください。

docker内の/var/wwwが先述のDockerLaravelディレクトリとマウント(紐付け)されているので、docker内の/var/wwwで作成したディレクトリやファイルがMac上のDockerLaravelディレクトリに作成されます。その逆も然り。

その後、以下のコマンドでlaravelインストール

$ composer create-project laravel/laravel ProjectName "5.3.*"

※当方laravelバージョン5.3系が良かったので指定していますが、"5.3.*" 部分を削れば最新バージョンになります。

ProjectName 部分は適宜お好きなプロジェクト名に変えてください。

結構時間かかりますが、下手に止めず気長にお待ち下さい。(Updating dependencies (including require-dev)辺りで止まって不安になりました…)

dockerから抜け、一度dockerと止める

$ exit

上記でログインしたdockerから抜けられます。

そして以下のコマンドで一度動作中のlaradock_workspace_1を止めます。

$ docker-compose stop

docker-compose.ymlとNginxのドキュメントルートを修正

$ vim docker-compose.ymlで修正します。

### Applications Code Container #############################
applications:
       image: tianon/true
       volumes:
	       ## 変更前
           #- ${APPLICATION}:/var/www
           ## 変更後
           - ../ProjectName/:/var/www/ProjectName
 ### Nginx Server Container ##################################

     nginx:
       build:
         context: ./nginx
         args:
           - PHP_UPSTREAM=php-fpm
       volumes_from:
         - applications
       volumes:
         - ${NGINX_HOST_LOG_PATH}:/var/log/nginx
         - ${NGINX_SITES_PATH}:/etc/nginx/sites-available
       ports:
	     ## 変更前
         #- "${NGINX_HOST_HTTP_PORT}:80"
         ## 変更後
         - "8080:80"
         ## 変更前
         #- "${NGINX_HOST_HTTPS_PORT}:443"
         ## 変更後
         - "443:443"
       depends_on:
         - php-fpm
       networks:
         - frontend
         - backend

Nginxのドキュメントルートの修正

$ vim nginx/sites/default.confで修正します。

     ## 変更前
     #root /var/www/public;
     ## 変更後
     root /var/www/ProjectName/public;

docker-compose up 実行

$ docker-compose up -d php-fpm nginx mysqlを実行。

正常に処理が終了した後、http://localhost:8080/へアクセス。

laravelのトップページが表示されていれば終了です。

まとめ

最初のみ確認しながらの対応だったので、時間がかかりましたが、それにしても一つずつインストールするより圧倒的に早いです。

二度目以降は数分で環境構築が終わるでしょうし、何より、先述のDockerLaravelフォルダ(中身:laradock & ProjectName)ごと人へ渡し、docker-compose up -d php-fpm nginx mysql workspaceを実行させれば環境構築終了と考えるとかなり有能だと感じます。

53
56
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
53
56

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?