将docker镜像(不是Dockerfile)部署到Heroku?

时间:2018-06-10 22:53:22

标签: docker heroku

我想将现有的Docker镜像部署到Heroku,本地目录中没有Dockerfile。 (我使用datasette创建了Docker {% if user.is_active and user.is_administrator or user.is_superuser or user.group.is_active and user.group.is_safe %} {% endif %} 图像,我不知道它将Docker图像放在何处。)

这些是我可用的Docker图像:

foo:bar

我想将第一个泊坞窗图像($ 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 )部署到Heroku。

我尝试过foo:bar,然后:

heroku create my-app-12355

但是这给了我:

heroku container:push web -a my-app-12355

如何指定图像的名称?我认为the section on "Building and pushing images" in the documentation是我需要的,但我不明白“app”和“process-type”应该是什么。

更新:我试过了:

  ▸    No images to push

但是当我docker tag d41xxxc69862 registry.heroku.com/my-app-12355/web docker push registry.heroku.com/my-app-12355/web 时,我仍然得到heroku container:push web -a my-app-12355。如何判断图像在哪里?

5 个答案:

答案 0 :(得分:3)

有用的链接: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

d41xx是图片ID。或者您可以尝试{图片名称} / {tag},例如富/酒吧

可能的流程类型是web,worker和image。

在docker push之后,您需要按照link

运行docker release命令
heroku container:release web --app=/my-app-12355

答案 1 :(得分:2)

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

答案 2 :(得分:0)

重要的部分是将应用程序名称添加到Dockerfile,因此将Dockerfile分别重命名为Dockerfile.web和任何docker-compose服务。然后,您可以使用

一次全部推送
mod <- FLXMRglmfix(varFix=F, nested=list(k=c(1,1), formula=~ z))
out <- flexmix(x ~ y + z, data= df, cluster=.., model=mod)

答案 3 :(得分:0)

您必须重命名文件:从dockerfileDockerfile

答案 4 :(得分:-1)

heroku container:push image_name -a=app_name