Как включить локальный языковой сервер в файл Docker и создать из него образ Docker? - PullRequest
0 голосов
/ 02 октября 2018

Мне нужно запустить локальный языковой сервер в качестве контейнера докера, включив его в файл Docker.Я построил простой языковой сервер, следуя только разделу «Предоставление Xtext Language Server».Это Dockerfile, который я написал для создания образа:

FROM eclipse/che
ADD xtextls3 C:\Users\abc\xtext_ls3
RUN sudo apt-get install socat -y
CMD socat TCP4-LISTEN:4417,reuseaddr,form EXEC:"xtextls"

Я не знаю, правильно ли это.«xtextls3» - папка рабочей области eclipse, которую я использовал для создания своего языкового сервера.Когда я пытаюсь создать этот файл Docker, я получаю эту ошибку: Сбой ADD: stat / var / lib / docker / tmp / docker-builder342449789 / xtextls3

Какой правильный метод включитьмой языковой сервер в Dockerfile, и создать из него образ Docker?

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

Похоже, я должен указать путь по отношению к контекстному каталогу (текущее местоположение, в котором я нахожусь в командной строке).Я поместил мой файл .jar в ту же папку, где находится Dockerfile, и изменил содержимое 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"

"build / libs / dsl-language-server-ls.jar" - это путь +file, а "dsl-language-server-ls.jar" - это двоичный файл, который мне требуется.

0 голосов
/ 02 октября 2018

Я мог бы подумать, что проблема заключается в линии ADD.Это добавит локальный файл xtextls3 к вашему слою.Тем не менее, файл не может быть найден.У меня есть идея, что вы должны поменять местами первый и второй аргумент инструкции ADD.

...