不允许使用多个指令
目录
输出
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", "https://127.0.0.1:8080"]
CMD ["python", "-m", "http.server", "8080"]