MultipleInstructionsDisallowed

输出

Multiple CMD instructions should not be used in the same stage because only the last one will be used

描述

如果您的 Dockerfile 中包含多个 CMDHEALTHCHECKENTRYPOINT 指令,则只有最后一条指令会被使用。一个镜像只能有一个 CMDHEALTHCHECKENTRYPOINT

示例

❌ 错误:重复指令。

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", "https://:8080"]
CMD ["python", "-m", "http.server", "8080"]
© . This site is unofficial and not affiliated with Kubernetes or Docker Inc.