よしかわーるど

プログラミングで世界を変える

2018-09-23

CakePHP3をdockerで環境構築

CakePHP3 を docker で環境構築

どうも、よしかわです。

今回、CakePHP と Docker で開発するために役立つことを綴っていきたいと思います。

対象読者

  • チームで CakePHP3 を開発する人
  • ローカル環境を汚したくない人
  • Docker を使って CakePHP3 のアプリを開発したい人

動作環境

  • Ubuntu 18.04
  • docker 18.06.1-ce
  • docker-compose 1.22.0

docker を使って構築

docker がインストールされている環境を事前に用意してください。

使い方

GitHub で公開しているので、今回はこちらを使います

YoshikawaTaiki/CakePHP3 docker

git clone git@github.com:YoshikawaTaiki/virtualmachine-template.git
cd virtualmachine-template/docker/cakephp
make docker/start

ここまでで Nginx, MySQL8, PHP7, Composer の開発環境が整いました!便利ですね。

次に CakePHP3 のアプリケーションを作ります。

make php/bash
cd ..
composer create-project --prefer-dist cakephp/app app

これで CakePHP3 のアプリケーションの作成が完了しました!

次に app/config/app.php を編集します。

今回、データベースは MySQL なんですが、Docker コンテナの MySQL に接続します。

docker-compose.yml で定義したコンテナ名に接続するため、services の名前であるdbを指定します。

251 行目からhost, username, passwordを修正します。

    'Datasources' => [
        'default' => [
            'className' => 'Cake\Database\Connection',
            'driver' => 'Cake\Database\Driver\Mysql',
            'persistent' => false,
            // this hostname is container service name
            'host' => 'db',
            'username' => 'root',
            'password' => 'password',

Database にアクセスするために、config/app.php を修正したので、今度は docker 内の MySQL にデータベースを作成します。

passwordと入力すると、my_appが作成されます。

make migrate/init
Enter password: password

以上で環境構築の終了です。めっちゃ簡単です。

確認してみましょう。以下の URL にアクセスします。

localhost

このような画面が表示されれば成功です!

localhost

ここまで長いようで短かったのではないでしょうか!

お疲れ様でした!それでは、良いハックライフを!!