Мне удалось выяснить, почему это не сработало. Оказывается, что для передачи опций JMX сервису мы использовали дескриптор сервиса Kubernetes в YAML. Это выглядит так:
- name: _JAVA_OPTIONS
value: -Dzipkinserver.listOfServers=http://zipkin:9411 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.rmi.port=1099
Я понял, что свойства JMX не были учтены в _JAVA_OPTIONS, когда приложение не запускается с ENTRYPOINT в контейнере docker. Поэтому я передаю свойства непосредственно в Dockerfile следующим образом:
CMD ["java", "-Dcom.sun.management.jmxremote", "-Dcom.sun.management.jmxremote.authenticate=false", "-Dcom.sun.management.jmxremote.ssl=false", "-Dcom.sun.management.jmxremote.local.only=false", "-Dcom.sun.management.jmxremote.port=1099", "-Dcom.sun.management.jmxremote.rmi.port=1099", "-Djava.rmi.server.hostname=127.0.0.1", "-cp","app:app/lib/*","OurMainClass"]
Также возможно сохранить _JAVA_OPTIONS и настроить ENTRYPOINT в файле Docker.
Спасибо!