MultipleInstructionsDisallowed
もくじ
出力
Multiple CMD instructions should not be used in the same stage because only the last one will be used(訳: ステージ内に CMD 命令を使用しても最後の一つしか評価されません)
内容説明
Dockerfile 内に CMD、HEALTHCHECK、ENTRYPOINT という命令を複数記述したとしても、最後のものしか評価されません。
一つのイメージに記述する CMD、HEALTHCHECK、ENTRYPOINTは一つだけです。
例
❌ 不可: 命令が重複しています。
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"]