Share feedback
Answers are generated based on the documentation.

MultipleInstructionsDisallowed

出力

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

(訳: ステージ内に CMD 命令を使用しても最後の一つしか評価されません)

内容説明

Dockerfile 内に CMDHEALTHCHECKENTRYPOINT という命令を複数記述したとしても、最後のものしか評価されません。 一つのイメージに記述する CMDHEALTHCHECKENTRYPOINTは一つだけです。

❌ 不可: 命令が重複しています。

FROM alpine
ENTRYPOINT ["echo", "Hello, Norway!"]
ENTRYPOINT ["echo", "Hello, Sweden!"]
# "Hello, Sweden!" だけが出力されます。

✅ 可: 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"]