Docker 應用安裝腳本

install_workerman3524_base_docker.sh

建立 app 與 logs 目錄,只在缺少時寫入範例應用與 composer.json,每次覆寫 Dockerfile。以可變 PHP 7.2/Composer 標籤建置後強制取代同名容器,只掛載 logs。

一鍵命令

curl -fL 'https://www.helper.sh/install_workerman3524_base_docker.sh' -o './install_workerman3524_base_docker.sh'

此命令只會下載本站檔案,不會執行。請先檢查儲存的原始碼並核對版本,再決定是否執行。

核對已下載檔案

與本頁面建置時內建的確切位元組比較。檔案僅在目前分頁處理,此工具不上傳、不持久儲存檔案。上限2 MiB。

預期 SHA-256
e3f40b68c2dc6cc4c865d7498000d73352f373a589362c141e485e3567f7bbb4

內建檔案位元組數: 5729

儲存校驗檔案

將腳本與校驗檔案儲存在同一目錄。Linux 安裝 GNU Coreutils 後可用下方命令僅檢查位元組,不執行腳本;使用此命令時需保留原檔名。

sha256sum --check './install_workerman3524_base_docker.sh.sha256'

尚未比較。

校驗值與腳本來自同一網站,不是獨立簽章。一致不證明安全、上游相依項目真實可信或適合本機;可變遠端相依項目需單獨審閱。

查看驗證與限制

執行要求

  • Linux 主機
  • Docker 已安裝並運行
  • 需要 root 權限或 sudo
  • 2345 埠可用
  • /data 目錄可寫

適用場景

  • 在已具備 Docker 環境的主機上快速啟動一個 Workerman 3.5.24 HTTP 服務
  • 把 Workerman 應用檔案與日誌統一保存在 /data/workerman3.5.24 下
  • 為仍然依賴 Workerman 3.x 的舊 PHP 常駐服務提供標準化的一鍵啟動入口

腳本亮點

  • 自動建立 /data/workerman3.5.24/app 與 logs
  • 預設寫入一個最小 Workerman 啟動腳本與 composer.json
  • 基於 php:7.2-cli 建置本地 helper-workerman:3.5.24 映像
  • 啟動一個可自動重啟的容器,並暴露一個簡單 HTTP 介面供驗證

推薦流程

  1. 先確認 Docker 已安裝可用,且宿主機的 2345 埠沒有被占用。
  2. 使用 sudo 或 root 執行 helper.sh 提供的一鍵命令。
  3. 等待腳本準備 /data/workerman3.5.24、建置本地映像,並建立容器。
  4. 後續可以直接修改 /data/workerman3.5.24/app 下的範例 Workerman 應用,再視需要重建或替換成正式服務。

安全提示

  • Workerman 3.x 與 PHP 7.2 都屬於舊版本元件,請只在相容性確實需要時使用。
  • 不要在沒有流量控制和程式碼審閱的情況下,把基於舊版 PHP 的事件服務直接暴露到公網。
  • 如果這是正式實例,替換或重建容器前請先備份 /data/workerman3.5.24。

相容範圍與限制

  • 需要使用 systemd 的 Linux、Docker 建置能力、root、可寫 /data 與所選空閒主機埠(預設 2345)。這是舊 Workerman 3.5.24/PHP 7.2 相容範例,PHP 7.2 已停止支援。
  • 接受 --data-dir、--container-name、--port。沒有 dry-run、備份或自動回復。php:7.2-cli 與 composer:2.2 是可變上游標籤;產生的 Dockerfile 在映像建置內停用歸檔中繼資料過期檢查,並允許不安全的 APT 儲存庫。
  • composer install 前只複製 composer.json,主機既有 composer.lock 不會固定該安裝階段。既有 composer.json 會保留,可能改變所要求的 Workerman 版本。上游位元組變更後需要重新核驗相依項目。

受影響的檔案、服務與資料

  • 建立 /data/workerman3.5.24/app 與 logs;只在缺少時寫入 app/start.php 和 composer.json。每次都會未經備份覆寫 DATA_DIR/Dockerfile,包含你的自訂修改。
  • 先建置 helper-workerman:3.5.24,再強制刪除同名容器並重建,將所選主機埠映射至容器 2345。只有 logs 是 bind mount,應用程式檔案複製進映像;修改主機 app 後需要重新建置與取代。
  • 未經備份重用主機檔案;掛載 logs 不保證自訂應用程式會將日誌寫入該處。沒有設定 TLS 或公開存取範圍限制。

唯讀核驗

  • 如修改名稱或路徑,請替換範例。檢查 `docker inspect workerman3524 --format '{{json .Mounts}} {{json .HostConfig.PortBindings}}'`、`docker ps --filter name=workerman3524` 與 `docker logs --tail 100 workerman3524`。
  • 以 `docker exec workerman3524 php -v` 與 `docker exec workerman3524 composer show workerman/workerman` 查看實際執行環境與已安裝相依版本。
  • 針對未修改的範例,另外核驗回環 HTTP 回應。curl 狀態成功不等於業務驗證;自訂請求處理器需要個別審閱測試。HTTP 就緒失敗或缺少 curl 時,腳本仍會在警告後輸出完成。

失敗後的下一步

建置失敗發生在刪除舊同名容器之前,但 Dockerfile 可能已被覆寫。保全主機檔案與舊映像、容器證據,檢查相依與歸檔錯誤。取代後失敗時,先查埠衝突、映像版本和日誌再考慮重建。備份自訂 Dockerfile 與 app;腳本不會自動恢復舊容器。

PHP · Composer

先下載、審閱並核對版本,再決定是否執行。雜湊只能識別這一版位元組,不能證明安全。pipe 命令會立即執行遠端內容;上游依賴也可能變動。

相關文章

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

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

相關專題

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

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

查看專題

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

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

查看專題

問題頁面

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

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

打開頁面