docker-compose.yaml
services:
code-server:
image: codercom/code-server:4.106.3-ubuntu
container_name: code-server
hostname: code-server
ports:
- 8080:8080
volumes:
- $PWD/config:/home/coder/.config
- $PWD/source:/home/coder/project
- $PWD/profile:/home/coder/.local/share/code-server
stdin_open: true
tty: true
entrypoint:
- /usr/bin/entrypoint.sh
- --bind-addr
- 0.0.0.0:8080
- /home/coder/project
user: $UID:$GID
environment:
- DOCKER_USER=$USER
networks:
- default
networks:
default:
name: caddy_default
external: true
把code-server里面的profile映射出来,方便下次重启docker,不必再次重新配置
config/code-server/config.yaml文件里面保存首次登录的password
覆盖docker image里面的entrypoint命令,这样能够指定workspace, 不然只能打开默认的/home/coder
GID使用的docker group ID
getent group docker | cut -d: -f3
这样即使host普通用户,只要也在docker group里面,也能修改config、profile和source的文件和目录
注意:github copilot chat插件要使用桌面版本的vscode下载特定版本的vsix文件,让后放到source目录下,在code-server web界面里选择从VSIX安装才行,原因是code-server里面内置的公开的vsix marketplace,不是Microsoft marketplace,导致无法下载github copilot chat等插件
docker exec -it code-server bash -c "code-server --version"
4.106.3 f128a7ac113916c9c29cf8d1361ab4b7f3bd9e75 with Code 1.106.3
查询code-server版本4.106.3和vscode的版本1.106.3, 这样才能得到兼容可用的插件版本