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