1
1
# docker-lsp-python
2
2
3
- 基于 Docker 的 Python Language Server Protocol (LSP) 环境,支持多版本 Python 和 Python LSP Server。
3
+ 基于 Docker 的 Python Language Server Protocol (LSP) 环境,提供轻量化的 Python LSP Server 容器 。
4
4
5
5
## 特性
6
6
7
7
- 基于 Python 3.11 的 Python LSP Server
8
8
- 包含完整的 Python LSP 插件生态
9
- - 用户和组管理,确保安全的文件权限
9
+ - 最小化系统依赖,轻量化镜像
10
+ - 非 root 用户运行,确保安全性
10
11
- 自动化的 Docker 镜像构建和发布
11
12
- 支持多架构构建(amd64, arm64)
12
13
@@ -30,16 +31,12 @@ docker run --rm -it ghcr.io/reaslab/docker-lsp-python:latest
30
31
31
32
### 环境变量
32
33
33
- ` entrypoint.sh ` 脚本支持以下环境变量:
34
-
35
- - ` USER ` , ` GROUP ` : 设置容器内的用户名/组名(默认:` python ` )
36
- - ` UID ` , ` GID ` : 设置用户/组 ID(默认:1000)
37
- - ` XDG_CACHE_HOME ` : 设置自定义缓存目录(默认:` /home/python/.cache ` )
34
+ 容器支持标准的环境变量配置,如 ` PYTHONPATH ` 等。
38
35
39
36
示例:
40
37
41
38
``` sh
42
- docker run -e USER=myuser -e UID=1234 ghcr.io/reaslab/docker-lsp-python:latest
39
+ docker run -e PYTHONPATH=/home/python ghcr.io/reaslab/docker-lsp-python:latest
43
40
```
44
41
45
42
### 使用 Docker Compose
@@ -54,13 +51,8 @@ services:
54
51
volumes :
55
52
- ~/.cache/python-lsp:/home/python/.cache
56
53
- ~/.config/python-lsp:/home/python/.config
57
- - ./workspace:/workspace
58
- working_dir : /workspace
59
- environment :
60
- - USER=python
61
- - UID=1000
62
- - GROUP=python
63
- - GID=1000
54
+ - ./workspace:/home/python/workspace
55
+ working_dir : /home/python/workspace
64
56
command :
65
57
- pylsp
66
58
- --tcp
@@ -92,7 +84,7 @@ docker run --rm -it docker-lsp-python:latest
92
84
93
85
### LSP 配置
94
86
95
- 容器包含默认的 LSP 配置,位于 ` /home/python/.config/python-lsp/config.json ` 。您可以通过挂载卷来自定义配置 :
87
+ 您可以通过挂载卷来自定义 LSP 配置:
96
88
97
89
``` sh
98
90
docker run -v /path/to/your/config.json:/home/python/.config/python-lsp/config.json ghcr.io/reaslab/docker-lsp-python:latest
@@ -106,6 +98,12 @@ docker run -v /path/to/your/config.json:/home/python/.config/python-lsp/config.j
106
98
- ** 类型检查** : pylint(默认禁用)
107
99
- ** 其他** : preload, rope
108
100
101
+ ### 系统依赖
102
+
103
+ 镜像包含最小化的系统依赖:
104
+ - ` ca-certificates ` : SSL 证书支持
105
+ - ` tini ` : 进程管理器,正确处理信号
106
+
109
107
## 自动化构建
110
108
111
109
此项目使用 GitHub Actions 进行自动化构建:
@@ -123,7 +121,10 @@ docker run -v /path/to/your/config.json:/home/python/.config/python-lsp/config.j
123
121
# 构建镜像
124
122
docker build -t docker-lsp-python:latest .
125
123
126
- # 运行容器
124
+ # 运行容器(TCP 模式)
125
+ docker run --rm -p 2087:2087 docker-lsp-python:latest pylsp --tcp --port 2087 --host 0.0.0.0
126
+
127
+ # 运行容器(交互模式)
127
128
docker run --rm -it docker-lsp-python:latest
128
129
```
129
130
0 commit comments