gallu / docker-app-skeleton
Docker-based PHP application development skeleton.
Installs: 1
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Language:Dockerfile
Type:project
pkg:composer/gallu/docker-app-skeleton
This package is not auto-updated.
Last update: 2025-11-20 14:15:44 UTC
README
開発用のシンプルな Docker ベース環境です。
PHP(php-fpm)・nginx・MySQL・Redis を含む基本構成を提供し、
任意の PHP フレームワーク(Laravel / Slim / Plain PHP など)を src/ に配置して利用できます。
このリポジトリは、自分用の開発テンプレートとして作成したものです。
セットアップ
インストールは以下のようにします。
composer create-project gallu/docker-app-skeleton [my-app-name]
構成
/
├─ docker-compose.yml
├─ docker/
│ ├─ nginx/
│ │ ├─ Dockerfile
│ │ └─ default.conf
│ ├─ php/
│ │ └─ Dockerfile
│ ├─ mysql/
│ │ └─ Dockerfile(必要に応じて配置)
│ └─ redis/
│ └─ Dockerfile(必要に応じて配置)
├─ storage/
│ ├─ db/
│ └─ logs/
├─ src/
│ └─ public/
│ └─ index.php
└─ scripts/
└─ setup.sh
セットアップ手順
1. 初期ディレクトリ作成
sh ./scripts/setup.sh
2. 例えば Laravel を使う場合
src/ 配下に Laravel をインストールする例です。
cd src
composer create-project laravel/laravel .
その後、src/public/ が Web root として nginx から参照されます。
起動
docker compose up --build -d
停止
docker compose down
PHP へのアクセス
http://localhost:8080/
MySQL
docker compose exec mysql bash
mysql -u root -p
PHP → MySQL 接続例
src/public/test_mysql.php:
<?php try { $pdo = new PDO( 'mysql:host=mysql;dbname=app;charset=utf8mb4', 'root', 'rootpassword', [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ] ); echo "OK: Connected to MySQL\n"; } catch (PDOException $e) { echo "NG: " . $e->getMessage(); }
Redis
<?php $redis = new Redis(); $redis->connect('redis', 6379); echo "PING: " . $redis->ping();
注意事項
src/は .gitignore 対象です。任意のアプリケーションを配置してください。storage/は永続化領域です(DB・ログなど)。