TL;DR
- composerを使います(composer無しの時のverだと若干辛いので)
- お手軽にFuelPHPを弄りたい方向け
前置き
- FuelPHPで実装されたソースコードをローカルで動かす機会があった
- DockerでFuelPHPの環境構築をした時の内容をまとめてみた
ディレクトリ構成
fuel-app
: アプリケーション
docker/fuel-app
: buildや起動時に使うファイル
compose.yaml
: アプリケーションサービスの設定ファイル
.
├── docker/
│ └── fuel-app/
│ ├── Dockerfile
│ └── php.ini
├── fuel-app/
└── compose.yaml
Dockerfile
composerをマルチステージビルドを利用して使えるようにする
docker/fuel-app/Dockerfile
FROM php:5.6-alpine
COPY --from=composer:2.2 /usr/bin/composer /usr/bin/composer
php.ini
最低限タイムゾーンのみ設定します
docker/fuel-app/php.ini
[Date]
date.timezone = "Asia/Tokyo"
compose.yaml
compose.yaml
version: "3"
services:
fuel-app:
build:
context: .
dockerfile: ./docker/fuel-app/Dockerfile
volumes:
- ./docker/fuel-app/php.ini:/usr/local/etc/php/php.ini
- ./fuel-app:/var/www
working_dir: /var/www
ports:
- "8080:8080"
command: "php -S 0.0.0.0:8080 -t public"
やってみよう
注意
コマンドはcompose.yaml
がある階層で実行する
1. build
$ docker compose build
2. composer create-project
$ docker compose run -u "$(id -u):$(id -g)" --rm fuel-app composer create-project fuel/fuel --prefer-dist .
実行後は以下のようになる
3. run
$ docker compose up -d
localhost:8080
でサーバーが立ち上がっているのでブラウザで確認する
参考
リポジトリ