# # 2021-11 Reimplementation of https://github.com/emacs-lsp/lsp-docker/ # "lsp-docker-langservers/Dockerfile" # using ubuntu:21.04 (c.f. 18.04) and vendor supplied packages # # EMACS_LSP_TAG="my-lsp-docker-langservers" # Build: docker build --tag "${EMACS_LSP_TAG}" . # Login: docker run --tty --interactive "${EMACS_LSP_TAG}" bash # Check: docker run "${EMACS_LSP_TAG}" sh -c "$(cat ShowInstalledAndVersion.sh)" # # TODO: # - Go: Should using “go install” and/or moving ‘gopls’ to /usr/local/bin # - Node: Determine how remove hard-coded version number for “npm@8.1.3” # - Previously git was installed to aid the build process. # Question: Does having VCSs installed, aid the container's actual work? # Note: ShowInstalledAndVersion.sh is uses perl(1); having git installs perl # FROM ubuntu:21.04 # General ENV DEBIAN_FRONTEND="noninteractive" RUN apt-get update \ && apt-get install -y apt-utils \ && apt-get upgrade -y \ && apt-get install -y git mercurial bzr subversion # C-Family RUN apt-get install -y ccls clangd # Go ENV PATH "${PATH}:/root/go/bin" RUN apt-get install -y golang \ && go get -u golang.org/x/tools/gopls # NPM installed language servers RUN apt-get -y install nodejs npm \ && npm install -g npm@8.1.3 \ && npm i -g \ bash-language-server \ vscode-css-languageserver-bin \ vscode-html-languageserver-bin \ dockerfile-language-server-nodejs \ typescript-language-server \ typescript # Python RUN apt-get install -y python3-pip \ && pip3 install 'python-language-server[all]' # End of File