Ubuntu 18.04本地运行CircleCI build遇多cgroups容器ID错误求助
解决Ubuntu 18.04本地运行CircleCI Build时的cgroup容器ID错误
这个问题我之前帮同事排查过,本质是本地Docker环境的cgroup驱动和CircleCI Build Agent的容器识别逻辑不兼容导致的——托管式CircleCI环境是官方预配置好的,自然适配,但咱们本地Ubuntu 18.04默认的cgroup驱动(systemd)会让Agent检测到多个cgroup条目,没法确定正确的容器ID。
下面给你两种可行的解决办法:
临时解决(单次生效)
直接在运行circleci build时添加Docker参数,强制使用cgroupfs驱动:
circleci build --docker-opt="--exec-opt native.cgroupdriver=cgroupfs"
永久解决(全局生效)
如果需要长期本地运行CircleCI构建,建议修改Docker的守护进程配置:
- 编辑(或创建)Docker配置文件:
sudo nano /etc/docker/daemon.json
- 添加以下内容,指定cgroup驱动为cgroupfs:
{ "exec-opts": ["native.cgroupdriver=cgroupfs"] }
- 保存后重启Docker服务:
sudo systemctl restart docker
之后再运行circleci build应该就能正常启动环境了,原理是让本地Docker的cgroup布局和CircleCI托管环境保持一致,Agent就能准确识别容器ID了。
内容的提问来源于stack exchange,提问作者JasoonS
相关产品推荐
相关产品推荐

