LoginSignup
2
3

More than 3 years have passed since last update.

苦手なDockerを使ってLaravel開発環境構築を構築(MailHog使いたい)

Posted at

きっかけ

  • 環境開発苦手
  • 長いコマンド打たなきゃでdocker怖い
  • ちょうどLaravelの開発環境ほしかった

とにかく環境構築・dockerに対しての喰わず嫌い(つまみ食い嫌い)
感が半端ないのであえてdockerでLaravel環境構築やってみる

Laradockとは?

Laradock??dockerじゃないんかい!!
というつっこみを入れつつ・・・

A full PHP development environment for Docker.
Supports a variety of useful Docker Images, pre-configured to provide a wonderful PHP development environment.

参照:Lradock

Laradockとは、Laravelコミュニティの有志がメンテナンスしている
オープンソースのLaravel環境開発であり、「Docker」上で動作する。

なのでざっくりと説明すると、
dockerが土地でLaradockが家みたいな関係なのだ。

Laradockのダウンロードとdockerの初期化

プロジェクトのディレクトリ作成

最終的なディレクトリのイメージ

projectname
     laradock-projectname
     laravel-projectname

上記のディレクトリをイメージしながらまず最初にprojectnameディレクトリを作成し、その中に入る。

$ mkdir projectname
$ cd projectname 

Laradockをダウンロード

LaradockをGitHubからクローンしてくる。つけたいディレクトリ名前を最後に入力。

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

Laradockの環境設定ファイルを作成

Laradockディレクトリのlaradock-projectnameに入っる。
env-exampleファイルを.envとしてコピーする。

$ cd laradock-projectname
$ cp env-example .env

dockerコンテナの初期化

コンテナ初期化では必要なファイルのダウンロードをするため、割と時間がかかる。

$ docker-compose up -d nginx mysql workspace phpmyadmin

こちらのコマンドでStateがUpになっていれば無事成功!

$ docker-compose ps

Laravelプロジェクトの作成

Laravelプロジェクトは「workspace」コンテナ上に作成します。

「workspace」コンテナへログイン

「workspace」コンテナにはLaravelに必要なものが一式用意されているため、
composerなどは「workspace」コンテナを通して実行。

とりあえずログイン

$ docker-composer exec workspace bash

composerコマンドを実行して新規プロジェクトを作成。
今回はlaravel5.5で作成したかったのでバージョン指定。

$ composer create-project laravel/laravel laravel-projectname --prefer-dist "5.5.*"

無事作成できたらコンテナからログアウト

$ exit

Laradockの環境設定ファイルを設定

先ほど作成したLaradockディレクトリ配下の.envを変更。
※必要部分以外省略

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

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

# Point to where the `APP_CODE_PATH_HOST` should be in the container
APP_CODE_PATH_CONTAINER=/var/www

# You may add flags to the path `:cached`, `:delegated`. When using Docker Sync add `:nocopy`
APP_CODE_CONTAINER_FLAG=:cached

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


nginxの設定

Laradockディレクトり配下のdocker-compose.ymlを変更する。
これでポート番号を8888に変更することができた。
※必要部分以外省略

### NGINX Server #########################################
    nginx:
      build:
        context: ./nginx
        args:
          - PHP_UPSTREAM_CONTAINER=${NGINX_PHP_UPSTREAM_CONTAINER}
          - PHP_UPSTREAM_PORT=${NGINX_PHP_UPSTREAM_PORT}
          - CHANGE_SOURCE=${CHANGE_SOURCE}
          - http_proxy
          - https_proxy
          - no_proxy
      volumes:
        - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}${APP_CODE_CONTAINER_FLAG}
        - ${NGINX_HOST_LOG_PATH}:/var/log/nginx
        - ${NGINX_SITES_PATH}:/etc/nginx/sites-available
        - ${NGINX_SSL_PATH}:/etc/nginx/ssl
      ports:
        - "8888:80"
        - "443:443"
      depends_on:
        - php-fpm
      networks:
        - frontend
        - backend

コンテナ再起動

一通り設定が終わったところで、コンテナを再起動。

$ docker-compose stop
$ docker-compose up -d nginx mysql workspace phpmyadmin

そしていよいよ・・・・・・・

ブラウザを開いてhttps:8888にアクセス
スクリーンショット 2019-07-23 23.19.58.png

じゃじゃじゃーーーん!!!!

2
3
0

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
2
3