feat: integrate terraform-ls LSP for Terraform development
- Add terraform-ls Dockerfile (Alpine-based, v0.38.4) - Add terraform-ls service to docker-compose.yml - Create LSP wrapper script for Crush integration - Add terraform entry to crush.json under lsp section - Update STATUS.md with terraform-ls working status 🧡 Generated with Crush Assisted-by: GLM-5 via Crush <crush@charm.land>
This commit is contained in:
@@ -77,6 +77,7 @@ All the following ahujasid repositories exist but contain no code (empty repos w
|
||||
- ✓ bash-language-server: Working (v5.6.0) - stdio-based, configured in crush.json
|
||||
- ✓ docker-language-server: Working (v0.0.0) - stdio-based, configured in crush.json
|
||||
- ✓ marksman: Working (2025-12-13) - stdio-based, configured in crush.json
|
||||
- ✓ terraform-ls: Working (v0.38.4) - stdio-based, configured in crush.json
|
||||
|
||||
## Detailed Status
|
||||
|
||||
|
||||
@@ -9,6 +9,9 @@
|
||||
},
|
||||
"markdown": {
|
||||
"command": "/home/charles/Projects/KNEL/KNEL-AIMiddleware/lsp-marksman-wrapper.sh"
|
||||
},
|
||||
"terraform": {
|
||||
"command": "/home/charles/Projects/KNEL/KNEL-AIMiddleware/lsp-terraform-wrapper.sh"
|
||||
}
|
||||
},
|
||||
"mcp": {
|
||||
|
||||
@@ -147,7 +147,7 @@ services:
|
||||
- ops
|
||||
|
||||
# ==========================================
|
||||
# Development Tools (2 servers)
|
||||
# Development Tools (3 servers)
|
||||
# ==========================================
|
||||
|
||||
# Bash Language Server - LSP for bash
|
||||
@@ -162,6 +162,18 @@ services:
|
||||
profiles:
|
||||
- dev
|
||||
|
||||
# Terraform Language Server - LSP for Terraform
|
||||
# NOTE: This is a stdio-based LSP server, run on-demand by Crush via docker run
|
||||
terraform-ls:
|
||||
image: kneldevstack-aimiddleware-terraform-ls
|
||||
build:
|
||||
context: .
|
||||
dockerfile: dockerfiles/terraform-ls/Dockerfile
|
||||
container_name: kneldevstack-aimiddleware-terraform-ls
|
||||
restart: "no"
|
||||
profiles:
|
||||
- dev
|
||||
|
||||
# Context7 MCP - Documentation framework
|
||||
# NOTE: This is a stdio-based MCP server, run on-demand by Crush via docker run
|
||||
context7-mcp:
|
||||
|
||||
27
dockerfiles/terraform-ls/Dockerfile
Normal file
27
dockerfiles/terraform-ls/Dockerfile
Normal file
@@ -0,0 +1,27 @@
|
||||
# Terraform Language Server (terraform-ls)
|
||||
# Official HashiCorp LSP for Terraform
|
||||
# https://github.com/hashicorp/terraform-ls
|
||||
|
||||
FROM alpine:3.18
|
||||
|
||||
# Install dependencies
|
||||
RUN apk add --no-cache \
|
||||
curl \
|
||||
ca-certificates \
|
||||
git \
|
||||
unzip
|
||||
|
||||
# Install terraform-ls
|
||||
ARG TERRAFORM_LS_VERSION=0.38.4
|
||||
RUN curl -fsSL https://releases.hashicorp.com/terraform-ls/${TERRAFORM_LS_VERSION}/terraform-ls_${TERRAFORM_LS_VERSION}_linux_amd64.zip \
|
||||
-o terraform-ls.zip && \
|
||||
unzip terraform-ls.zip && \
|
||||
mv terraform-ls /usr/local/bin/ && \
|
||||
chmod +x /usr/local/bin/terraform-ls && \
|
||||
rm terraform-ls.zip
|
||||
|
||||
# Set up working directory
|
||||
WORKDIR /workspace
|
||||
|
||||
# Run terraform-ls in stdio mode
|
||||
ENTRYPOINT ["terraform-ls", "serve"]
|
||||
4
lsp-terraform-wrapper.sh
Executable file
4
lsp-terraform-wrapper.sh
Executable file
@@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
docker run -i --rm \
|
||||
-v "$(pwd):/workspace" \
|
||||
kneldevstack-aimiddleware-terraform-ls
|
||||
Reference in New Issue
Block a user