用 ChatGPT 寫 Dockerfile、看懂 Docker 報錯:說明技術棧和日誌,鏡像先在本地構建驗證,附 4 段可複製提示詞

怎麼用 ChatGPT 寫 Dockerfile、docker-compose、看懂 Docker 構建和運行報錯?把項目類型、依賴、端口和完整日誌給它,讓它寫配置並解釋原因。本文給 4 段提示詞,強調密鑰不要寫進鏡像、基礎鏡像版本和命令要對照官方文檔核對。

NNathaniel bigo··原創首發·AI 輔助撰寫
5 分鐘讀完
資料核對於 2026-11-05 · 依據官方文檔與公開資料整理 免費帳號 帳號
本文根據 OpenAI Academy《Prompting》、幫助中心《Working with writing blocks and code blocks in ChatGPT》整理,資料核對於 2026-11-05。配圖為本站整理的示意圖,不是介面截圖。本站(bigolab.com)不是 OpenAI 官方網站。官方沒有專門的「Docker」文章,提示詞是本站示範。

適用於誰

  • 想把自己的項目打成鏡像、用 Docker 部署的開發者;
  • 會用別人的鏡像,但不會自己寫 Dockerfile 或 compose 文件的人;
  • 構建失敗、容器一啟動就退出,看不懂日誌的人。

結論先說

  1. 把項目資訊說全。 語言和版本、依賴文件、啟動命令、監聽端口、需要的環境變量、數據要不要持久化。資訊少,它只能給通用模板。
  2. 讓它解釋每一行。 特別是基礎鏡像、COPY、RUN、CMD 的順序,會影響構建速度和鏡像大小。
  3. 密鑰不要寫進鏡像。 密碼、API Key 通過環境變量或密鑰管理傳入,不要寫進 Dockerfile 或提交到倉庫。也別把真實密鑰貼進對話。
  4. 先本地構建驗證。 在本機跑通再上伺服器;生產環境的操作先備份、留回滾方案。
  5. 報錯貼完整日誌。 從出錯的那一步往前多貼幾行。

用 ChatGPT 寫 Dockerfile 的流程:說明技術棧和端口、生成配置並解釋、本地構建、貼日誌排錯、再上線

圖:本站根據 OpenAI Academy:Prompting 整理的示意圖

一、4 段可以直接複製的提示詞

1. 寫 Dockerfile

請為下面的項目寫 Dockerfile。
項目:[Node.js 20 的後端服務],依賴文件 [package.json、package-lock.json],構建命令 [npm run build],啟動命令 [node dist/server.js],監聽端口 [3000]。
要求:使用多階段構建以減小鏡像;先複製依賴文件再安裝,以便利用緩存;不要以 root 運行;不要在鏡像裏寫任何密鑰,環境變量在運行時傳入。
請逐行加註釋,並說明基礎鏡像版本我應該去哪裏確認。

2. 寫 docker-compose

請寫 docker-compose.yml:服務一是上面的應用,服務二是 [PostgreSQL],數據要持久化到卷;應用通過環境變量讀取數據庫地址,密碼從 .env 文件讀取(不要寫真實值,用佔位符);數據庫啟動後應用再啟動。
請說明每個字段的作用,以及如何驗證兩個服務都正常。

3. 解釋構建或運行報錯

我執行 [docker build -t myapp .],在第 [N] 步失敗,日誌如下:
[粘貼完整日誌]
Dockerfile:[粘貼]
請先解釋失敗原因,再給出修改後的片段,並說明改動為什麼能解決問題。如果需要我提供更多資訊(如目錄結構),先問我。

4. 容器一啟動就退出

容器啟動後馬上退出。docker logs 的輸出:[粘貼]。啟動命令:[粘貼]。
請列出最可能的 3 個原因,每個說明怎麼驗證,不要讓我刪除數據卷或鏡像,除非先說明後果。

通用寫法見 /guides/how-to-write-prompts。

二、自己必須核對什麼

Docker 配置上線前自己要核對的清單:基礎鏡像版本、密鑰不入鏡像、端口與卷、本地構建通過、回滾方案

圖:本站根據 OpenAI Academy:Prompting 整理的示意圖

  • 基礎鏡像:標籤是否存在、是否是你信任的官方鏡像,到鏡像倉庫頁面確認;
  • 指令用法:不確定的指令、參數,對照 Docker 官方文檔;
  • 密鑰與私隱:.env、私鑰有沒有被 COPY 進鏡像;日誌貼出前先打碼,見 /guides/ai-privacy-data-safety-checklist;
  • 端口和卷:端口映射、數據卷路徑是否正確,數據是否會隨容器刪除而丟失;
  • 刪除類命令:清理鏡像、卷、容器的命令,先確認範圍;
  • 伺服器資源:構建鏡像可能佔用大量內存和磁盤,生產機上先看資源;
  • 回滾:保留上一個可用鏡像標籤。

常見問題

Q:本地能跑,伺服器上不行?

把兩邊的系統架構、環境變量、網絡訪問條件對比後貼給它,讓它列出差異點。

Q:它寫的配置裏有我不認識的參數?

讓它逐個解釋,仍不確定就查官方文檔,不要先上線。

Q:有現成的部署教學可以參考嗎?

可以看用 Docker Compose 部署具體應用的例子,如 /guides/dify-docker-compose-self-host。

Q:免費版夠用嗎?

夠用;長日誌和多輪調試可能遇到使用限制,可以看看 /chongzhi/chatgpt-plus。

參考資料

  • OpenAI Academy:Prompting — https://openai.com/academy/prompting/
  • OpenAI 幫助中心:Working with writing blocks and code blocks in ChatGPT — https://help.openai.com/en/articles/20001246-working-with-writing-blocks-and-code-blocks-in-chatgpt

Nathaniel 的更多內容

  1. 01

    Claude Code 在 Windows 上的常見坑:Git Bash 還是 PowerShell、路徑反斜槓、假報錯、WSL 怎麼選

    Windows 上用 Claude Code,裝好之後最容易踩的是:用哪個 shell、路徑寫法不一致、grep 沒匹配就報錯、鉤子沒生效、WSL 和原生怎麼選。本文逐條按官方文檔整理原因和處理辦法,附三段提示詞和一張對照表。

    Claude0
  2. 02

    Claude Code Hooks 實戰「提交前自動跑測試」:PreToolUse 攔住 git commit,測試不過就退出碼 2,附 Windows 注意點

    只寫一個完整例子:讓 Claude Code 每次要執行 git commit 之前,先自動跑項目測試,沒通過就攔下並把輸出交給它修。本文按官方 Hooks 文檔給出腳本、settings.json 配置、測試方法、排錯和 Windows 的兩處坑。

    Claude0
  3. 03

    Claude Code 自定義斜槓命令與 Skill 實戰:從零寫一個「生成更新日誌」的 /release-notes,含傳參、預執行命令和調試

    概念看過了,還是不知道從哪下手?本文按 Claude Code 官方「Extend Claude with skills」寫一個完整可用的例子:用 /release-notes 根據 git 記錄生成更新日誌,覆蓋目錄、frontmatter、傳參、預執行命令、預授權和調試。

    Claude0
  4. 04

    Claude Code 部署網站:先寫 Dockerfile 和 compose 在本機跑通,再按清單上雲伺服器,別讓它直接改線上

    想讓 Claude Code 幫你把網站部署到雲伺服器。本文只寫通用做法,按 Docker 官方文檔講:讓它寫 Dockerfile、.dockerignore 和 compose,在本機跑通,端口和數據卷怎麼設,再給出上線清單,並說明為什麼不要讓它直接動線上機器。

    Claude0
  5. 05

    Claude Code 寫爬蟲與數據清洗:先查 robots.txt 和網站條款,控制頻率,原始數據留一份再清洗

    想讓 Claude Code 寫爬蟲抓數據再清洗。本文先講合規:robots.txt 不是授權也不是安全措施、網站條款要自己讀;再講怎麼用 Python 標準庫檢查規則、小樣本先試、儲存原始數據,以及用 pandas 清洗,附四段提示詞。

    Claude0
  6. 06

    Claude Code 寫 Chrome 擴展:按 Manifest V3 起步,加載未打包的擴展,改了哪些文件要重新加載

    想讓 Claude Code 幫你寫一個 Chrome 擴展。本文按 Chrome 官方擴展文檔講:manifest.json 的最小寫法、在 chrome://extensions 加載未打包的擴展、哪些改動要刷新、怎麼看控制檯和報錯,再給四段提示詞,以及權限要盡量少。

    Claude0

同產品的其他教學

  1. 01

    OpenAI API 的 token 怎麼算、怎麼估算費用:input_tokens 計數接口、tiktoken 和隱藏的輸出 token

    發請求前想知道會用多少 token?官方有 Responses 的 input_tokens 計數接口,能把文字、圖片、文件、工具定義一起算準;本地 tiktoken 只適合純文本。本文給 Python 和 Node 示例,講輸出 token 為什麼可能比看到的多,以及怎麼估算費用。

    ChatGPT0
  2. 02

    OpenAI API Node.js / TypeScript 快速上手:npm install openai、example.mjs 第一個請求,到流式、函數調用、聯網搜尋

    用 Node.js 調 OpenAI API:設定 OPENAI_API_KEY 環境變量,npm install openai,新建 example.mjs,用 client.responses.create 發出第一個請求。並列出圖片、文件、流式、函數調用、聯網搜尋和錯誤捕獲的 Node 寫法。

    ChatGPT0
  3. 03

    OpenAI API 用量層級(usage tiers)與速率限制怎麼提升:Free、Build、Launch、Grow 和後台 Limits 頁

    OpenAI API 的限速不是固定的:官方按累計購買額度把組織分成 Free、Build、Launch、Grow 四個層級,達到門檻自動升級。本文講 RPM、TPM 等指標、怎麼在後台查自己的限額、響應頭怎麼讀、花費上限和限速的區別,以及怎麼讓限額變得夠用。

    ChatGPT0
  4. 04

    OpenAI API 報錯 400、401、403、404、429、500、503 怎麼排查:按官方錯誤碼頁逐個看原因和解決辦法

    調用 OpenAI API 返回 400、401、403、404、429、500、503,各自什麼意思?本文按官方 Error codes 頁,每個狀態碼一節,寫清官方給的原因和解決辦法,並說明 404 在官方頁面裏的位置、429 的六種情形,附 Python 和 Node 的錯誤捕獲寫法。

    ChatGPT0
  5. 05

    OpenAI Realtime API 是什麼:語音到語音會話、WebRTC 與 WebSocket、臨時密鑰和事件機制

    Realtime API 讓模型直接處理音頻,做可以隨時打斷的語音助手。本文按官方文檔講它是什麼、什麼時候用、瀏覽器接入的流程、session 與事件、可用聲音、60 分鐘會話上限、安全標識,以及它和轉寫、文字轉語音的分工。

    ChatGPT0
  6. 06

    OpenAI 圖像生成 API 怎麼用:gpt-image 系列、images.generate 與 Responses 工具、尺寸質素和遮罩編輯

    用 OpenAI API 生成或編輯圖片,有 Image API 和 Responses 裏的 image_generation 工具兩條路。本文按官方文檔給 Python 和 Node 示例,講 gpt-image 模型選擇、尺寸質素格式參數、遮罩編輯、被攔截時的錯誤處理,以及需要組織驗證的提醒。

    ChatGPT0

0 條評論

登入 後參與評論

還沒有評論,來搶沙發~