# LSP Dockerfiles **Dockerfiles for Language Server Protocol (LSP) servers** - Containerized language servers for use with IDEs. ## What is this? This sub repository provides **production-ready Docker containers** for 25+ Language Server Protocol (LSP) servers. ## Note: Files under servers/ were copied from https://github.com/lspcontainers/dockerfiles/servers. The root dockerfile is primary and not part of the reference servers. This README is modified from the other repo. ### **How it works:** 1. **Docker containers** provide isolated, reproducible LSP server environments 3. **Zero local installation** - no need to install language servers on your system Perfect for: - **Consistent development environments** across teams and machines - **Clean system** - no language server pollution on your host - **Reproducible builds** with pinned package versions - **Easy switching** between language server versions ## Supported Language Servers | Language | Server | Container | Version | |----------|--------|-----------|---------| | **Bash** | bash-language-server | `servers/bash-language-server` | ![Version](https://img.shields.io/badge/version-5.6.0-blue) | | **C/C++** | clangd | `servers/clangd-language-server` | ![Version](https://img.shields.io/badge/version-20.1.8-blue) | | **C#** | omnisharp | `servers/omnisharp-language-server` | ![Version](https://img.shields.io/badge/version-1.39.12-blue) | | **CSS/SCSS/Less** | vscode-css-languageserver | `servers/css-language-server` | ![Version](https://img.shields.io/badge/version-4.10.0-blue) | | **Deno** | deno-lsp | `servers/deno-language-server` | ![Version](https://img.shields.io/badge/version-2.4.2-blue) | | **Docker** | dockerfile-ls | `servers/docker-language-server` | ![Version](https://img.shields.io/badge/version-0.14.0-blue) | | **ESLint** | eslint-languageserver | `servers/eslint-language-server` | ![Version](https://img.shields.io/badge/version-latest-blue) | | **Go** | gopls | `servers/gopls` | ![Version](https://img.shields.io/badge/version-0.19.1-blue) | | **GraphQL** | graphql-language-service | `servers/graphql-language-server` | ![Version](https://img.shields.io/badge/version-3.5.0-blue) | | **HTML** | html-languageserver | `servers/html-language-server` | ![Version](https://img.shields.io/badge/version-1.4.0-blue) | | **JavaScript/TypeScript** | typescript-language-server | `servers/typescript-language-server` | ![Version](https://img.shields.io/badge/version-4.3.4-blue) | | **JSON** | vscode-json-languageserver | `servers/json-language-server` | ![Version](https://img.shields.io/badge/version-4.10.0-blue) | | **Lua** | lua-language-server | `servers/lua-language-server` | ![Version](https://img.shields.io/badge/version-3.14.0-blue) | | **PHP** | intelephense | `servers/php-language-server` | ![Version](https://img.shields.io/badge/version-1.14.4-blue) | | **PowerShell** | powershell-es | `servers/powershell-language-server` | ![Version](https://img.shields.io/badge/version-4.3.0-blue) | | **Prisma** | prisma-language-server | `servers/prisma-language-server` | ![Version](https://img.shields.io/badge/version-6.9.1-blue) | | **Python** | pylsp | `servers/python-lsp-server` | ![Version](https://img.shields.io/badge/version-1.12.0-blue) | | **Python** | pyright | `servers/pyright-language-server` | ![Version](https://img.shields.io/badge/version-1.1.377-blue) | | **Ruby** | solargraph | `servers/ruby-language-server` | ![Version](https://img.shields.io/badge/version-0.55.1-blue) | | **Rust** | rust-analyzer | `servers/rust-analyzer` | ![Version](https://img.shields.io/badge/version-1.88.0-blue) | | **Svelte** | svelte-language-server | `servers/svelte-language-server` | ![Version](https://img.shields.io/badge/version-0.17.16-blue) | | **Tailwind CSS** | tailwindcss-language-server | `servers/tailwindcss-language-server` | ![Version](https://img.shields.io/badge/version-0.14.25-blue) | | **Terraform** | terraform-ls | `servers/terraform-ls` | ![Version](https://img.shields.io/badge/version-0.36.5-blue) | | **Vue** | volar | `servers/volar-language-server` | ![Version](https://img.shields.io/badge/version-1.8.11-blue) | | **Vue** | vuels (legacy) | `servers/vue-language-server` | ![Version](https://img.shields.io/badge/version-0.8.5-blue) | | **XML** | lemminx | `servers/xml-language-server` | ![Version](https://img.shields.io/badge/version-0.27.0-blue) | | **YAML** | yaml-language-server | `servers/yaml-language-server` | ![Version](https://img.shields.io/badge/version-1.18.0-blue) | ## Architecture & Design ### **Reproducible Builds** All containers use **pinned package versions** for complete reproducibility: - **Base images**: Specific Alpine/Debian versions - **System packages**: Exact apk/apt package versions - **Language packages**: Pinned npm, gem, pip, go module versions ### **Minimal & Secure** - **Alpine Linux base** for minimal attack surface - **Multi-stage builds** where applicable - **Non-root users** for security - **Distroless principles** - only essential components