DockerComposeファイルとDockerSwarmを使用してサービスをデプロイしています。 Dockerfile内にヘルスチェックを配置することに違いがあるのか、それともdocker-compose.ymlに配置する方が良いのか疑問に思いました。
利用可能なすべてのドキュメントを読んだように感じますが、何も見つかりませんでした。
docker-compose.yml
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8081/ping"]
interval: 30s
timeout: 10s
Dockerfile
HEALTHCHECK --interval=30s --timeout=10s CMD curl -f http://localhost:8081/ping
Dockerfileにヘルスチェックを追加すると、イメージのヘルスチェック部分が作成されるため、レジストリからイメージをプルするすべてのユーザーがデフォルトでヘルスチェックを取得します。
作成ファイルは通常、実行する実際のDockerイメージよりも共有されません。 dockercomposeヘルスチェックを使用すると、イメージを作成していないが、リモートレジストリからイメージをプルしているユーザーのイメージのヘルスチェックを追加/上書きできます。プルされたイメージにデフォルトでヘルスチェックがない状況に適しています。
あなたの場合、イメージを作成しているので、dockerfileにヘルスチェックを追加する方が理にかなっています。