将Docker映像(不是Dockerfile)部署到Heroku?

Ric*_*ard 2 heroku docker

我想将现有的Docker映像部署到Heroku,在本地目录中没有Dockerfile。(我foo:bar使用数据集创建了Docker 映像,但我不知道它将Docker映像放在何处)。

这些是我可用的Docker映像:

$ docker images
REPOSITORY                                     TAG        IMAGE ID            CREATED             SIZE
foo                                            bar        d41xxxc69862        About an hour ago   1.08GB
<none>                                         <none>     af079eb9ceda        About an hour ago   980MB
Run Code Online (Sandbox Code Playgroud)

我想将第一个docker映像(foo:bar)部署到Heroku。

我尝试过这样做heroku create my-app-12355,然后:

heroku container:push web -a my-app-12355
Run Code Online (Sandbox Code Playgroud)

但这给了我:

  ?    No images to push
Run Code Online (Sandbox Code Playgroud)

如何指定图像名称?我认为文档中有关“构建和推送图像”的部分是我所需要的,但我不知道应使用什么“ app”和“ process-type”。

更新:我尝试过:

docker tag d41xxxc69862 registry.heroku.com/my-app-12355/web
docker push registry.heroku.com/my-app-12355/web
Run Code Online (Sandbox Code Playgroud)

但是当我这样做的时候heroku container:push web -a my-app-12355我仍然会得到No images to push。我如何知道图像在哪里?

小智 8

docker镜像推送到 heroku 时,请确保您的Dockerfile以大写“D”命名。Heroku CLI 似乎没有将dockerfile(带有小写“D”)识别为搜索图像文件的可行名称,尽管 docker 本身可以。我用这个解决方案解决了这个问题。希望能帮助到你。


Moh*_*ood 5

有用的链接:https : //toedter.com/2016/11/05/deploying-spring-boot-apps-to-heroku-using-docker/

我认为您需要先标记图像,然后将其推送到heroku注册表:

docker tag d41xxxc69862 registry.heroku.com/my-app-12355/web
docker push registry.heroku.com/my-app-12355/web
Run Code Online (Sandbox Code Playgroud)

d41xx是图像ID。或者您可以尝试{image name} / {tag}例如foo / bar

可能的过程类型为Web,工作者和图像。

在docker push之后,您需要按照此链接运行docker release命令

heroku container:release web --app=/my-app-12355
Run Code Online (Sandbox Code Playgroud)

  • 在`docker tag d41xxxc69862registry.heroku.com/my-app-12355/web`和`docker Pushregistry.heroku.com/my-app-12355/web`之后,不需要container:push命令。根据上面的文章,应用程序应该可以通过“https://my-app-12355.herokuapp.com”访问 (2认同)

小智 5

您必须重命名您的文件:从dockerfileDockerfile.