This repository has been archived on 2025-06-09. You can view files and clone it, but cannot push or open issues or pull requests.

Laravel docker 開發環境部署說明

本專案使用 Docker 開發環境,整合以下元件:

  • Laravel 12
  • PHP 8.3 (FPM)
  • MariaDB
  • Redis + RedisInsight
  • 自動 HTTPSnginx-proxy + letsencrypt-nginx-proxy-companion

🚀 啟動方式

1. 建立 .env

複製 .env.example.env 並設定參數:

cp .env.example .env

設定如下變數:

APP_DOMAIN=your-domain.local
LETSENCRYPT_EMAIL=you@example.com

PROJECT_NAME=ktvcentral
DB_DATABASE=ktvcentral
DB_USERNAME=ktvcentral
DB_PASSWORD=secret

2. 啟動 Docker自動 HTTPS

預設使用 nginx-proxy + Let's Encrypt 自動管理憑證。

docker-compose -f docker-compose.yaml -f docker-compose.letsencrypt.yaml up -d

3. 首次初始化(自動執行於 entrypoint

包含:

  • 專案 clone來自 GIT_REPO_URL
  • composer install
  • .env 設定替換(自動注入 DB、Redis 等)
  • php artisan key:generate
  • php artisan migrate --force
  • npm install && npm run build
  • Laravel schedule 加入 crontab
  • 透過 supervisord 啟動:
    • php-fpm
    • queue worker
    • cron

🔧 手動 HTTPS 控制

自動 HTTPS預設

使用:

docker-compose -f docker-compose.yaml -f docker-compose.letsencrypt.yaml up -d

關閉 HTTPS無 Let's Encrypt

使用:

docker-compose -f docker-compose.yaml up -d

📁 資料目錄結構

.
├── data/                 # 專案會被 clone 到這(/var/www/html
│   └── html/
├── docker/
│   ├── entrypoint.sh     # 初始與 Laravel 任務處理
│   └── supervisord.conf  # 管理 php-fpm、queue、cron
├── docker-compose.yaml
├── docker-compose.letsencrypt.yaml
├── .env
└── README.md

📥 Laravel 專案匯入來源

請於 .env 設定:

GIT_REPO_URL=https://your.git.repo/your-project.git

🔒 自動 HTTPS 注意事項

  • 需將你的 APP_DOMAIN 指向本機 IP例如透過 /etc/hosts
127.0.0.1 your-domain.local
  • 憑證會儲存在 ./certs 資料夾
  • 若為公開伺服器,請確保 80 / 443 連接埠已開啟

🧹 常見指令

# 查看容器狀態
docker ps

# 重啟容器
docker-compose restart

# 進入 app 容器
docker exec -it ktvcentral_app bash

# 查看 log
docker-compose logs -f

預設啟動的 Supervisor 服務

  • PHP-FPM (php-fpm)
  • Laravel Queue Worker (php artisan queue:work)
  • Cron執行 php artisan schedule:run 每分鐘)

📄 License

MIT

Description
Laravel Docker Publisher
Readme 104 KiB
Languages
Shell 74.7%
Dockerfile 25.3%