Fat Jar для реализации языкового сервера

Я пытаюсь построить языковой сервер, который будет реализован как коляска для затмения че. Я создал толстую банку из созданного мной языкового сервера xtext. Могу ли я использовать этот толстый jar для реализации моего языкового сервера в файле docker для запуска моего языкового сервера в качестве контейнера?

Я написал Dockerfile, как показано ниже:

FROM barais/eclipse-xtend
ADD build/libs/dsl-language-server-ls.jar dsl-language-server-ls.jar
RUN sudo apt-get install socat
CMD socat TCP4-LISTEN:4417,reuseaddr,fork EXEC:"mydsl"

"dsl-language-server-ls.jar" - это файл jar, созданный при сборке моего проекта (т. е. LS). У меня вопрос, могу ли я запустить свой языковой сервер, включив файл.jar, как в приведенном выше файле dockerfile? На самом деле это сработало в eclipse che, но я все еще получаю ошибку сломанной трубы и ошибку тайм-аута, которая заставляет меня сомневаться в моем подходе.

Ошибка инициализации языкового сервера

Это ошибка, которую я получаю.

1 ответ

Решение

Это будет работать, только если вы правильно упакуете свой образ докера

  • убедитесь, что вы включаете Java 8
  • убедитесь, что вы включаете не только jar, но и сценарии запуска из каталога сборки
  • или вы просто позвоните java -jar yourjar.jar вместо mydsl скрипт запуска
Другие вопросы по тегам