LoginSignup
5
6

More than 5 years have passed since last update.

限りなく簡単に!Dockerを利用してLaravelが動くところまでを構築!

Last updated at Posted at 2017-02-18

目的

Dockerを利用して、Laravel PHPのWelcome画面表示までを行います!
開発環境での利用を想定しています。セキュリティ的に配慮する点が多数ありますので、間違っても本番サーバでそのまま利用することは控えてください!

想定する読者

  • とりあえずLaravelが動くところを見たい方
  • ストレスなくLaravel PHPの開発環境を整えたい方
  • Dockerを使いたいけど、どう使えば良いかわからない方

前提

OS : Mac OS EL Capitan
インストールしてあるもの :
Docker for Mac
※DockerがインストールされているWindows10やLinux系OSでも動作するはずです。
gitコマンド

GitHubにファイル一式あります。

デスクトップを動画キャプチャしたら本当に5分でした!

動画解説クリック→

構築手順

いよいよ、構築します。ほとんどコマンドラインでの作業です。

作業場所

参考までに当方は
/Users/{$user}/Documents/workspace
というフォルダで作業しています。

注意

Mac OSやLinuxであればどこでも大丈夫なはずですが、Windows10の場合はユーザ直下のフォルダで作業しましょう。DockerがPC上のフォルダをマウントするときにユーザ直下であれば何も設定せずに利用することが可能です!

実行

gitからcloneする
$ git clone git@github.com:RyosukeKamei/laravel-alpine.git
laravel-alpineに移動
$ cd laravel-alpine

PHPのパッケージマネージャComposerをインストールします。
すでにインストールしてある場合は不要です。

Composerをインストール
$ curl -sS https://getcomposer.org/installer | php

【補足】
Composer.pharはパスが通っているところに移動させてもよいです。

Composerのインストールを確認
$ php composer.phar --version

いよいよLaravelをインストールします。
"project"は任意の名前にしますが、一旦このままprojectにしてください。
名称を変えたい場合は、この記事の最後で説明をしています。

Laravelをprojectという名前でインストール
$ php composer.phar create-project laravel/laravel project --prefer-dist

もし、GitHubでアクセストークを取得し設定していない場合は、Laravelインストール中に

もし、GitHubでアクセストークを取得し設定していない場合
Token (hidden): 

と聞かれます。その度にEnterしても良い(面倒です…)のですが、事前にGitHubでアクセストークンを取得し、下記を実行しておくと聞かれなくなります。
トークンはGitHubのアカウントを取得すると作成することができます。詳細はここでは割愛します。
(トークンを設定するのは、GitHub側の不正アクセス防止策です。)

(必要に応じて)トークンを設定
$ php composer.phar config --global github-oauth.github.com {GitHubで取得したトークン}

続いて、Dockerを利用して、アプリコンテナ・データベースコンテナ・データコンテナを作成します。

Dockerコンテナを作成し起動する
$ docker-compose up -d
コンテナ起動を確認
$ docker ps -a

ブラウザで確認で確認してみましょう!
http://192.168.99.100/
Dockerを利用してLaravelが動くところまでを5分で構築!

プロジェクト名を変えたい場合

このままだとプロジェクト名がprojectのままです。

フォルダ名を変更します。
Dockerを利用してLaravelが動くところまでを5分で構築!

docker-compose.ymlの46行目にあるビルドインサーバの設定を変更します。
working_dir: /var/www/html/project/public

working_dir: /var/www/html/{ここをフォルダ名と同じにする}/public

参考

docker-compose.yml
# dataコンテナ
# 最近の主流ではない?
data:
  container_name: Alpine-data
  image: alpine
  stdin_open: true
  tty: false
  # docker-composeを実行するフォルダをマウントする
  volumes:
    - .:/var/www/html
  command: /bin/sh

# mysql
# MySQLはmy.cnfを追加したカスタム版
db:
  container_name: Alpine-MySQL-db
  build: ./docker/mysql
  volumes_from:
    - data
  ports:
    - "3306:3306"
  environment:
    # MySQLのrootパスワード
    MYSQL_ROOT_PASSWORD: Mm6iR9KY
    # デフォルトのデータベースとユーザの設定
    MYSQL_DATABASE: laravel
    MYSQL_USER: system
    MYSQL_PASSWORD: Yu4JFkX6

application:
  container_name: Alpine-Laravel-app
  # Dockerfileを使いビルド(docker-compose up -dで一発構築)
  build: ./docker/app
  tty: false
  volumes_from:
    - data
  expose:
    - "80"
  ports:
    - "80:80"
  environment:
    CODEIGNITER_ENV: development
  links:
    - db
  # ビルドインサーバを利用 プロジェクト名を変更する場合はprojectを変更する
  working_dir: /var/www/html/project/public
  command: php -S 0.0.0.0:80
5
6
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
5
6