docker - 我可以使用 Heroku 注册表作为评论应用服务的基础镜像吗?

标签 docker heroku deployment heroku-review-app

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

目前正在使用 Docker(在容器堆栈上)成功构建审核应用程序。我目前在 heroku.ymlapp.json 的“formation”部分中定义了一项 web 和一项 worker 服务.

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

在我的评测应用程序中,我还尝试运行 servicex,它目前是一个使用 Docker 和 container 堆栈托管在我的 Heroku 上的应用程序。由于 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 配置凭据。

最佳答案

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

我决定为我们的不同语言堆栈创建一系列基础镜像,将它们托管在 Dockerhub 上,并将它们用作我的评论应用程序镜像的起点。

我还使用一种方法来缓存 Dockerfile 中的依赖项,这里使用类似的策略(使用 bundle install https://medium.com/magnetis-backstage/how-to-cache-bundle-install-with-docker-7bed453a5800 的 ruby​​ 示例)

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

关于docker - 我可以使用 Heroku 注册表作为评论应用服务的基础镜像吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49391477/

相关文章:

从1.2升级到1.3并在Docker容器中部署时,Meteorpackages.json错误解决方法

ruby-on-rails - 如何修复 Heroku 上的日期方法关闭问题?

python - 最终用户无需安装即可在网络驱动器上运行 Python 脚本的最简单方法?

deployment - LESS 部署和构建自动化

java - 如何创建一个在我的应用程序运行时一直运行的线程

Docker多阶段构建不在阶段之间复制

docker - Docker在docker swarm群集上组成单独的节点上的单独容器

javascript - Node JS : io is not defined error on frontend

docker - 如何在 github repo 中使用从 jfrog artifactory 到 Dockerfile 的 war 文件

node.js - 用于 ping Heroku 应用程序的 New Relic 替代方案