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
|