我想从Dockerfile构建docker镜像,并将此镜像发布到AWS ECR (Docker注册表)。
为了成功,我需要从Codebuild容器中访问docker build
和docker push
,这是有问题的(在docker容器中安装docker会导致Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
等错误)。
请你怎么继续做这样的事情?有没有办法使用codebuild从Dockerfile构建Docker镜像?
发布于 2020-06-26 15:52:20
我找到了一个解决方案。遵循this link的代码,别忘了在“环境”配置屏幕中启用“特权”。
发布于 2021-10-06 20:56:42
Docker sample for CodeDeploy列出了以下步骤:
select to >如果要使用此构建项目构建
并提供以下注释:
备注
默认情况下,Docker容器不允许访问任何设备。特权模式授予构建项目的Docker容器对所有设备的访问权限。有关详细信息,请参阅Docker Docs网站上的运行时权限和Linux功能。
如果您仍然遇到问题,AWS::CodeBuild::Project Environment的CloudFormation文档的PriviledgedMode
部分提供了以下初始化Docker守护程序的步骤:
您可以在构建的安装阶段初始化Docker守护程序,方法是在buildspec文件的安装阶段添加以下命令集之一:
如果操作系统的基础映像是Ubuntu Linux:
- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=overlay&
- timeout 15 sh -c "until docker info; do echo .; sleep 1; done"
如果操作系统的基映像是高山Linux,并且前面的命令不起作用,请将-t参数添加到超时:
- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=overlay&
- timeout -t 15 sh -c "until docker info; do echo .; sleep 1; done"
https://stackoverflow.com/questions/62579463
复制相似问题