1. Потому, что localhost внутри контейнера отличается от localhost хоста, а 80 порт, который отвечает http - может быть доступен только на хосте, а внутри контейнера /app/service слушает другой порт.
2. Потому, что httpcheck может вообще не запускаться внутри образа from scratch, если собран не статически.
3. Потому, что тот, кто задает вопрос - не стал проверять два первых варианта, хотя они просятся, чтобы их проверить и не дал никаких подробностей и возможно дело в третьем.