MultipleInstructionsDisallowed (不允许的多个指令)
目录
输出
Multiple CMD instructions should not be used in the same stage because only the last one will be used
描述
如果您有多个CMD
,HEALTHCHECK
或ENTRYPOINT
说明
Dockerfile 时,仅使用最后一个匹配项。一个镜像只能有一个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
和一个单独的CMD
对于HEALTHCHECK
指令。
✅ Good:只有一个顶级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"]