依原始碼排查問題

為何修改主機應用後 Workerman 容器沒有更新

分清本站 Workerman 範例的建置輸入與執行時掛載,保護自訂 Dockerfile,並確認實際執行的映像與相依項目。

閱讀約 3 分鐘 · 2026-03-23

更新日期: 2026-10-30

app 被複製,只有 logs 被掛載

產生的 Dockerfile 將 app/ 複製進映像。docker run 只掛載 DATA_DIR/logs,因此修改 DATA_DIR/app/start.php 不會變更執行中容器。先檢查 Mounts,再判斷舊回應是否與 Docker 快取有關。

經審閱的程式更新需要重新建置映像並取代容器。腳本在建置後強制刪除舊同名容器,且每次都覆寫主機 Dockerfile。選擇維護步驟前,保全自訂建置說明、應用檔案與適當的復原映像。

重新建置前先確認實際版本

這是舊 PHP 7.2 相容範例。php:7.2-cli 與 composer:2.2 標籤可變,歸檔建置還放寬 APT 驗證。composer install 階段只接收 composer.json,沒有使用主機 lock 檔;映像名稱本身不能證明相依項目可重現或安全。

下方唯讀檢查需使用實際容器名稱。記錄映像 ID、掛載、PHP 與已安裝 Workerman 版本。回環 HTTP 狀態成功不能證明修改後的程式或業務交易已執行;測試自訂請求前先審核其行為。

  • docker inspect workerman3524 --format '{{.Image}} {{json .Mounts}}'
  • docker exec workerman3524 php -v
  • docker exec workerman3524 composer show workerman/workerman

相關專題

Docker 服務:檢查介面與保留狀態

按協定、資料目錄與取代影響區分 HTTP、SQL、快取、FastCGI 或映像內應用。

查看專題

舊 PHP:區分執行階段相容性與應用就緒

PHP 7.2/Workerman 3.5.24 範例用於有升級計畫的遺留相容工作。

查看專題

問題頁面

Workerman 顯示完成但 HTTP 就緒檢查失敗

再次取代容器前,區分建置、容器啟動、curl 探針與業務驗證。

打開頁面