EXPOSE и ONBUILD в Dockerfile выполняют разные задачи:
- EXPOSE определяет порты, на которых контейнер регистрирует соединения. my-js.org Например, образ, содержащий веб-сервер Apache, должен использовать EXPOSE 80, а образ, содержащий MongoDB — EXPOSE 27017. my-js.org
- ONBUILD добавляет в образ триггер, запускаемый при использовании данного образа в качестве основы для другой сборки. my-js.org Например, когда исходный код, нужный для образа ещё не доступен, но требует для работы конкретного окружения. habr.com
Таким образом, EXPOSE указывает, какие порты должны быть открыты, а ONBUILD — регистрирует заранее определённые инструкции для запуска позже, на следующей стадии сборки. docs.docker.com www.fosstechnix.com