从CI服务器部署Docker应用程序到Heroku时的权限错误
问题
我试图从我的CI服务器(Circle)部署一个Dockerized应用程序到Heroku。
当我运行heroku docker:release --app <app_name>
,CI日志显示如下:
Error response from daemon: permission denied ! Error in heroku-docker: ! Command failed: docker cp 93a67016632af5cffacab9817b741c4dc69b41f0f6d324c8bae53fe98f4e621d:/tmp/slug.tgz /tmp
不过,我可以从我的本地机器运行这个命令就好了。 我提供给Circle的API密钥与我的本地用户相同。 另外,我可以从CI服务器上运行其他的Heroku命令,比如heroku logs --app <app_name>
。
为什么有权限错误?
额外的背景信息
看来Heroku支持Docker的唯一方法是使用Docker Toolbelt和Docker插件( heroku docker:release --app <app_name>
)。 同时,在CircleCI中部署到Heroku的推荐方法是在专有的circle.yml
文件中使用特殊条目 。 但是,这不支持Docker,这就是我selectheroku docker:release
方法的原因。