在AWS CodeBuild的Ubuntu 7.0标准容器中启动Docker时遇到权限错误的求助
在AWS CodeBuild的Ubuntu 7.0标准容器中启动Docker时遇到权限错误的求助
嗨,我来帮你解决这个问题!你遇到的ulimit: error setting limit (Operation not permitted)错误,本质是因为AWS CodeBuild的Ubuntu 7.0标准容器本身就自带Docker环境,你手动重新安装并尝试启动Docker的操作反而触发了权限冲突。
给你几个具体的解决建议:
别再手动安装Docker了!
CodeBuild的Ubuntu 7.0标准镜像已经预装了Docker、docker-compose以及相关依赖,完全满足你的使用需求。你在install阶段里的一系列Docker安装命令不仅多余,还会覆盖默认的Docker配置,导致后续启动时出现权限问题——毕竟CodeBuild的运行容器是受资源限制的,没办法通过service docker start修改ulimit这类系统级参数。简化你的buildspec.yml
把install阶段里所有和Docker安装、启动相关的命令删掉,直接用默认的Docker环境就好。修正后的buildspec.yml应该是这样的:phases: install: commands: - cat /etc/os-release # 移除所有Docker安装/启动命令,镜像自带完整Docker环境 build: commands: - docker-compose up -d额外提醒
CodeBuild环境里的Docker daemon是预先启动好的,你不需要手动执行service docker start。另外,你的Build项目角色已经被授予了操作Docker的权限,大部分情况下不需要加sudo前缀就能执行Docker命令。
备注:内容来源于stack exchange,提问作者julanove
相关产品推荐
相关产品推荐

