如何在 docker 文件中包含本地语言服务器并从中构建 docker 图像?

How to include a local language server in a dockerfile and build a docker image from it?

我需要 运行 将本地语言服务器作为 docker 容器,方法是将其包含在 docker 文件中。我仅按照 "Provide the 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 failed: stat /var/lib/docker/tmp/docker-builder342449789/xtextls3

将我的语言服务器包含在 docker 文件中并从中构建 docker 图像的正确方法是什么?

我可能认为问题出在 ADD 行。这会将本地文件 xtextls3 添加到您的层。但是,找不到该文件。我的想法是您必须交换 ADD 指令的第一个和第二个参数。

看来我应该说明与上下文目录(我在命令提示符中的当前位置)相关的路径。我将我的 .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"是路径+文件,"dsl-language-server-ls.jar"是我要的二进制文件。