koolを使いCodeIgniter4の開発環境を構築する

(最終更新:2021/10/01)

koolを使うと、DockerでCodeIgniter4の開発環境を簡単に構築できます。

動作確認環境

  • CodeIgniter 4.1.4
  • kool 1.14.0
  • Docker Desktop 4.0.1
  • macOS 10.15.7

koolの動作には、Docker EngineとDocker Composeが必要です。 Dockerを起動した状態で以下の作業を行って下さい。

1. kool CLIのインストール

以下のコマンドを実行し、koolコマンドをインストールします。

$ curl -fsSL https://kool.dev/install | bash
Hello, we are gonna install the latest stable version of Kool!
Downloading latest binary (kool-darwin-amd64)...
Moving kool binary to /usr/local/bin/kool...
Downloading base images...
kool version 1.14.0 installed successfully.

2. CodeIgniter4プロジェクトの作成

フォルダ名(ci4app-kool)を指定してCodeIgniter4のプロジェクトを作成します。

$ kool create codeigniter ci4app-kool

途中、PHP、データベース、キャッシュサーバを選択します。

Unable to find image 'kooldev/php:7.4' locally
7.4: Pulling from kooldev/php
...
Digest: sha256:403d4a74d3de06fd32c388bc6dab5c29d2b2eb1cf0adda98ebf4fb281e79a529
Status: Downloaded newer image for kooldev/php:7.4
Creating a "codeigniter4/appstarter" project at "./ci4app-kool"
Installing codeigniter4/appstarter (v4.1.4)
  - Downloading codeigniter4/appstarter (v4.1.4)
  - Installing codeigniter4/appstarter (v4.1.4): Extracting archive
Created project in /app/ci4app-kool
Preset codeigniter is initializing!
? Which app service do you want to use PHP 7.4
? Which database service do you want to use MySQL 8.0
? Which cache service do you want to use Redis 6.0
Preset codeigniter initialized!

3. 初回のセットアップ

初回のみ kool run setup を実行します。

$ cd ci4app-kool/
$ kool run setup

これは、kool.yml に設定されている setup を実行します。

これで、コンテナも起動されます。

4. .envの設定

.env を変更します。

データベースへのアクセス情報などを設定します。

--- env 2021-10-01 13:41:54.000000000 +0900
+++ .env    2021-10-01 13:50:47.000000000 +0900
@@ -14,13 +14,13 @@
 # ENVIRONMENT
 #--------------------------------------------------------------------

-# CI_ENVIRONMENT = production
+CI_ENVIRONMENT = development

 #--------------------------------------------------------------------
 # APP
 #--------------------------------------------------------------------

-# app.baseURL = ''
+app.baseURL = 'http://localhost/'
 # app.forceGlobalSecureRequests = false

 # app.sessionDriver = 'CodeIgniter\Session\Handlers\FileHandler'
@@ -37,10 +37,10 @@
 # DATABASE
 #--------------------------------------------------------------------

-# database.default.hostname = localhost
-# database.default.database = ci4
-# database.default.username = root
-# database.default.password = root
+database.default.hostname = database
+database.default.database = database
+database.default.username = user
+database.default.password = pass
 # database.default.DBDriver = MySQLi
 # database.default.DBPrefix =

これで、完了です。

Welcomeページの確認

ブラウザで http://localhost/ にアクセスします。

Welcomeページが表示されました。

コンテナの起動

次回以降のコンテナの起動は、以下のコマンドを実行します。

$ kool start

コンテナの停止

コンテナの停止は、以下のコマンドです。

$ kool stop

その他のkoolコマンド

コンテナの状態確認

$ kool status
+----------+---------+------------------------------------------------------+----------------------+
| SERVICE  | RUNNING | PORTS                                                | STATE                |
+----------+---------+------------------------------------------------------+----------------------+
| app      | Running | 0.0.0.0:80->80/tcp, :::80->80/tcp, 9000/tcp          | Up 2 hours           |
| cache    | Running | 6379/tcp                                             | Up 2 hours (healthy) |
| database | Running | 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp | Up 2 hours (healthy) |
+----------+---------+------------------------------------------------------+----------------------+
[done] Fetching services status

ログの確認

$ kool logs app
$ kool logs -f app

コンテナのシェルを起動

$ kool exec app bash

kool CLIのアップデート

koolコマンドをアップデートする場合は、以下を実行します。

$ kool self-update

コンテナの再構築

$ kool restart --rebuild

参考

関連

Date: 2021/09/17

Tags: codeigniter, codeigniter4, docker