1. 調整 docker-compose.yml
- 主要調 networks 設定
- 確認 port 有用
ports發佈到本機 localhost(expose只在容器間可見,host 連不到) - 把這個專案用不上的容器關掉(精簡 stack)
2. 新增 .env 檔案
- 複製
.env.example為.env,再改連線設定
3. 啟動容器
docker-compose up -d4. 進到 web 容器安裝 PHP 依賴
docker-compose exec web composer i5. 等待容器就緒(重要)
composer i完成後,需重啟容器(docker-compose restart web)或等容器自動重啟- 容器啟動時會先執行
/init/fix-permissions.sh,對整個/var/www/html逐一chown www-data:www-data - 因為
vendor/內有數萬個檔案,加上 Windows Docker 掛載 volume 效能較差,這個過程可能需要數分鐘 - 在 chown 跑完之前,supervisord 不會啟動,nginx 和 php-fpm 也不會運行,此時訪問網站會出現 502
- 確認方式:執行
docker-compose exec web ps aux,看到supervisord、nginx、php-fpm進程出現即代表就緒
6. 執行 Migration
docker-compose exec web php artisan migrate --force7. 執行 Seeder
docker-compose exec web php artisan db:seed --force8. 確認
訪問 http://localhost/ 確認網站正常運作