不允許多個指令
目錄
輸出
Multiple CMD instructions should not be used in the same stage because only the last one will be used
說明
如果您的 Dockerfile 中有多個 CMD
、HEALTHCHECK
或 ENTRYPOINT
指令,則只會使用最後一個出現的指令。一個映像檔只能有一個 CMD
、HEALTHCHECK
和 ENTRYPOINT
。
範例
❌ 錯誤:重複的指令。
FROM alpine
ENTRYPOINT ["echo", "Hello, Norway!"]
ENTRYPOINT ["echo", "Hello, Sweden!"]
# Only "Hello, Sweden!" will be printed
✅ 正確:只有一個 ENTRYPOINT
指令。
FROM alpine
ENTRYPOINT ["echo", "Hello, Norway!\nHello, Sweden!"]
您可以同時擁有一個規則的頂層 CMD
和一個針對 HEALTHCHECK
指令的個別 CMD
。
✅ 正確:只有一個頂層 CMD
指令。
FROM python:alpine
RUN apk add curl
HEALTHCHECK --interval=1s --timeout=3s \
CMD ["curl", "-f", "http://localhost:8080"]
CMD ["python", "-m", "http.server", "8080"]