65 lines
4.9 KiB
Markdown
65 lines
4.9 KiB
Markdown
# 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.
|
||
|
||
### **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 | `lspcontainers/bash-language-server` |  |
|
||
| **C/C++** | clangd | `lspcontainers/clangd-language-server` |  |
|
||
| **C#** | omnisharp | `lspcontainers/omnisharp-language-server` |  |
|
||
| **CSS/SCSS/Less** | vscode-css-languageserver | `lspcontainers/css-language-server` |  |
|
||
| **Deno** | deno-lsp | `lspcontainers/deno-language-server` |  |
|
||
| **Docker** | dockerfile-ls | `lspcontainers/docker-language-server` |  |
|
||
| **ESLint** | eslint-languageserver | `lspcontainers/eslint-language-server` |  |
|
||
| **Go** | gopls | `lspcontainers/gopls` |  |
|
||
| **GraphQL** | graphql-language-service | `lspcontainers/graphql-language-server` |  |
|
||
| **HTML** | html-languageserver | `lspcontainers/html-language-server` |  |
|
||
| **JavaScript/TypeScript** | typescript-language-server | `lspcontainers/typescript-language-server` |  |
|
||
| **JSON** | vscode-json-languageserver | `lspcontainers/json-language-server` |  |
|
||
| **Lua** | lua-language-server | `lspcontainers/lua-language-server` |  |
|
||
| **PHP** | intelephense | `lspcontainers/php-language-server` |  |
|
||
| **PowerShell** | powershell-es | `lspcontainers/powershell-language-server` |  |
|
||
| **Prisma** | prisma-language-server | `lspcontainers/prisma-language-server` |  |
|
||
| **Python** | pylsp | `lspcontainers/python-lsp-server` |  |
|
||
| **Python** | pyright | `lspcontainers/pyright-language-server` |  |
|
||
| **Ruby** | solargraph | `lspcontainers/ruby-language-server` |  |
|
||
| **Rust** | rust-analyzer | `lspcontainers/rust-analyzer` |  |
|
||
| **Svelte** | svelte-language-server | `lspcontainers/svelte-language-server` |  |
|
||
| **Tailwind CSS** | tailwindcss-language-server | `lspcontainers/tailwindcss-language-server` |  |
|
||
| **Terraform** | terraform-ls | `lspcontainers/terraform-ls` |  |
|
||
| **Vue** | volar | `lspcontainers/volar-language-server` |  |
|
||
| **Vue** | vuels (legacy) | `lspcontainers/vue-language-server` |  |
|
||
| **XML** | lemminx | `lspcontainers/xml-language-server` |  |
|
||
| **YAML** | yaml-language-server | `lspcontainers/yaml-language-server` |  |
|
||
|
||
|
||
##️ 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
|