背景
还是老问题,公司的虚拟机是centos7的老环境,glibc非常旧,最近在使用droid进行vibe coding,发现安装后提示GLIBC太旧,使用patchelf大法会段错误,于是萌生了使用docker跑droid的方法
实现
-
自己先构建一个可以跑droid的镜像
DockerfileFROM ubuntu:22.04
安装常用开发工具
RUN apt-get update && apt-get install -y --no-install-recommends
git
curl
wget
ca-certificates
build-essential
python3
python3-pip
nodejs
npm
ncurses-base
&& rm -rf /var/lib/apt/lists/*设置工作目录
WORKDIR /workspace
docker build -t droid-runner .
-
使用bash function来运行
for droid
function droid {
docker run --rm -it
--network host
--privileged
-v /root/.local/bin/droid:/usr/local/bin/droid:ro
-v "(pwd)":"(pwd)"
-w "(pwd)" \ -v /root/.factory:/root/.factory \ -e HOME=/root \ -e TERM="TERM"
droid-runner
droid "$@"
}
其中--privileged和-v /root/.factory:/root/.factory 是关键:
- privileged决定了tui可以正常跑起来,不然各种权限不够
- /root/.factory 是droid的配置文件,按需修改,同步也要修改-e HOME这个参数
- 之后使用
droid命令就可以愉快的玩耍了。