我可以使用Heroku注册表图像作为评论应用服务的基本图像吗?

时间:2018-03-20 18:16:07

标签: docker heroku deployment dockerfile review

我的一条heroku管道当前正在使用docker部署(https://devcenter.heroku.com/articles/container-registry-and-runtime)与heroku.ymlhttps://devcenter.heroku.com/articles/heroku-yml-build-manifest)结合使用。

审核应用程序目前正在使用Docker(在container堆栈上)成功构建。我目前在webworker的“格式”部分中定义了一个heroku.yml和一个app.json服务。

build:
  docker:
    web: Dockerfile.web
    worker: Dockerfile.worker
    servicex: Dockerfile.servicex

在我的评论应用中,我还尝试运行servicex,这是目前在我的Heroku上使用Docker和container堆栈托管的应用。由于servicex的相应应用程序正在使用docker,因此它在Heroku的注册表中有一个图像。我试图将该图像用作servicex

的基本图像
FROM registry.heroku.com/<app_name>/<process_type>

这将在本地工作,因为我使用Heroku的注册表进行了身份验证,但是当在heroku上进行构建时,它会因错误而失败:

Sending build context to Docker daemon  5.223MBStep 1/2 : FROM registry.heroku.com/<app_name>/<process_type>
Get https://registry.heroku.com/v2/<app_name>/<process_type>/manifests/latest: no basic auth credentials

我的问题是,如果我可以在构建期间轻松地使用heroku的注册表进行身份验证? 如果没有,那么最好的方法是什么。尝试公开任何凭据,来自dockerfile的进程似乎无法访问heroku配置凭据。 感谢。

1 个答案:

答案 0 :(得分:0)

在与heroku支持人员交谈后,这还不可能。

决定为我们不同的语言堆栈创建一系列基本映像,托管dockerhub上的那些,并将其作为我的评论应用程序图像的起点。

我也使用一种方法在我的Dockerfile中使用类似的策略来缓存依赖关系(ruby示例使用bundle install https://medium.com/magnetis-backstage/how-to-cache-bundle-install-with-docker-7bed453a5800

由于我的worker和Web服务使用相同的依赖项,因此依赖项安装步骤使用缓存!