どうもPHP初心者、Laravel初心者のものです。
今回の案件ではPHPのフレームワークにLaravelを使うことにしましたのでインストール手順をまとめたいと思います。
環境
ホストOS:Windows 10
Docker:Docker for Windows
PHP: 5.6(稼働環境の関係で7.x系にできない・・・)
Laravel: 5.4
いつものようにGitHubにプッシュしてあります。
laravel-docker-for-windows
Docker
開発はすべてWindowsで行いますがartisan
コマンド等はDocker上で行います。
なのでdocker run
時にアプリケーションディレクトリをマウントして起動します。
プロダクション環境はオンプレでDockerは動かせないので、Dockerはあくまで開発環境として使用します。
Windowsにphpをインストールしても同様なことができると思いますので、ここはお好みで。
phpはオフィシャルのイメージをベースにしても良いのですがパッケージ等インストールするので今回はCentOSのイメージから作りました。
[bash]
FROM centos:7
RUN yum -y update
RUN yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm \
&& yum -y install --enablerepo=remi-php56 php php-mysql php-gd php-mbstring php-xml php-mcrypt
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer
[/bash]
docker build -t php56 .
等を実行してエラーがでなければ大丈夫だと思います。
Docker Compose
Dockerfileだけで大丈夫なんですけど、起動オプションとかマウントとか毎回入力するの面倒なので環境情報などをdocker-compose.yml
に書いてdocker-compose
で実行すると楽です。
あとDcoker Composeを使うとマウントするときに相対パスが使えるようになります。
[python]
version: "3"
services:
php56:
build: ./src/Docker/php56
ports:
- 8080:8080
volumes:
- src/app:/app
command: tail -f /dev/null
[/python]
docker-compose up -d
でコンテナを立ち上げてdocker-compose ps
等で起動していれば大丈夫です。
Docker for Windows使っている人はDocker for Windowsの設定でShared Drivesを適切に設定しておく必要があります。
Laravelのインストール
Laravelはインストーラーを使う方法とComposerを使う方法があるのですが、今回はComposerを使ってインストールしました。
上で作成したphp56コンテナにComposerがインストールしてあるのでphp56コンテナに入って作業します。
docker-compose exec php56 bash
でphp56コンテナに入る。
[bash]
### Laravelをインストールする
composer create-project --prefer-dist laravel/laravel . "5.4.*"
### artisanコマンドが実行できるか確認する
php artisan -V
### 内蔵httpサーバーを起動する
php artisan serve --host 0.0.0.0 --port 8080
[/bash]
ブラウザでhttp://localhost:8080/
にアクセスしてLaravelのページが表示されればインストール完了です。
まとめ
Docker for WindowsをインストールするとDocker Composeも使えるようになります。
アプリケーションがRDBMSを使う場合もdocker-compose.yml
にサービスを追加すると使えるようになるので拡張性も高いと思います。