diff --git a/docker/compose.yml b/docker/compose.yml new file mode 100644 index 0000000..2554b8f --- /dev/null +++ b/docker/compose.yml @@ -0,0 +1,20 @@ +services: + lsp-c: + image: clangd:latest + build: + context: ./lsp/clangd + dockerfile: Dockerfile + container_name: lsp-c + restart: always + ports: + - "4594:3000" + + lsp-cpp: + image: clangd:latest + build: + context: ./lsp/clangd + dockerfile: Dockerfile + container_name: lsp-cpp + restart: always + ports: + - "4595:3000" diff --git a/docker/lsp/clangd/Dockerfile b/docker/lsp/clangd/Dockerfile new file mode 100644 index 0000000..4a24fc3 --- /dev/null +++ b/docker/lsp/clangd/Dockerfile @@ -0,0 +1,25 @@ +FROM alpine:latest as builder + +RUN apk add --no-cache git npm + +WORKDIR /app + +RUN git clone https://github.com/wylieconlon/jsonrpc-ws-proxy.git + +WORKDIR /app/jsonrpc-ws-proxy + +COPY servers.yml . + +RUN npm install && npm run prepare + +FROM alpine:latest + +RUN apk add --no-cache build-base clang-extra-tools nodejs + +WORKDIR /app/jsonrpc-ws-proxy + +COPY --from=builder /app/jsonrpc-ws-proxy . + +EXPOSE 3000 + +CMD ["node", "dist/server.js", "--port", "3000", "--languageServers", "servers.yml"] diff --git a/docker/lsp/clangd/servers.yml b/docker/lsp/clangd/servers.yml new file mode 100644 index 0000000..dc5e385 --- /dev/null +++ b/docker/lsp/clangd/servers.yml @@ -0,0 +1,5 @@ +langservers: + clangd: + - /usr/bin/clangd + - --log=verbose + - --background-index