laradockとは?
laravelだけじゃなくて、開発のときに利用する周りのリソースDB,キャッシュとかのDockerfileの詰め合わせみたいなものです。
docker-composeコマンドだけで開発環境ができてしまって便利。
とりあえずPHPで何か開発しようかー。ってときに自分で環境を準備するんではなくて、これをベースに始めるのがいい感じ。
対応しているもの
公式ドキュメントのSupported Software (Images)に書いてあるんですが、おそらくこれだけあれば開発目的には足りるだろうという感じです。
Supported Software (Images)
In adhering to the separation of concerns principle as promoted by Docker, Laradock runs each software on its own Container. You can turn On/Off as many instances of as any container without worrying about the configurations, everything works like a charm.
Database Engines: MySQL - MariaDB - Percona - MongoDB - Neo4j - RethinkDB - MSSQL - PostgreSQL - Postgres-PostGIS.
Database Management: PhpMyAdmin - Adminer - PgAdmin
Cache Engines: Redis - Memcached - Aerospike
PHP Servers: NGINX - Apache2 - Caddy
PHP Compilers: PHP FPM - HHVM
Message Queueing: Beanstalkd - RabbitMQ - PHP Worker
Queueing Management: Beanstalkd Console - RabbitMQ Console
はじめかた
$ git clone https://github.com/laradock/laradock.git
$ cd laradock
$ cp env-example .env
$ docker-compose up -d nginx mysql phpmyadmin redis workspace
これをするだけで、nginx, mysql, phpmyadmin, redis, workspace(開発用のphpunitとか入ってくるやつ)のイメージが起動します。
PHP-CLIのバージョンを変更する
イメージの設定を変えたい場合は直接docker-compose.ymlを編集することはせずに、.envファイルを修正します。
例えばPHP-CLIのバージョンを変えたい場合は、
1. .envファイルを開く
2. PHP_VERSIONを探す
3. 指定のバージョンへ変更
PHP_VERSION = 7.2
4. buildし直す
docker-compose build workspace
の流れになります。また、各イメージのDockerfileの下に設定ファイル用のディレクトリが置いてあって、DockerImageとVolumeで共有されていて、
設定ファイルなどはそこに配置するようになってます。
PHPの環境がサクッとできてしまうのも便利なのですが、これを使っていくとDockerの使い方の理解も深まっていく感じでとてもよかったです。