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"]