热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何推送由Docker管理的Docker容器组成Heroku?

如何解决《如何推送由Docker管理的Docker容器组成Heroku?》经验,为你挑选了1个好方法。

我目前有一个本地测试和工作的Web应用程序,由4个docker容器组成:Java MVC,NodeJS,Flask和MongoDB.我有4个Dockerfiles,每个都有一个,我使用docker-compose.yml管理构建.

但是,现在我想将我的代码推送到Heroku,并且我在https://devcenter.heroku.com/articles/container-registry-and-runtime上阅读了文档.但是,如何在生产线上使用docker-compose似乎非常暧昧.这就是它在文档中所说的内容:

"如果您已经创建了一个多容器应用程序,则可以使用Docker Compose来定义本地开发环境.了解如何使用Docker Compose进行本地开发."

任何人都可以指导我使用Heroku的CLI将我的项目推送到Heroku容器的实际代码吗?



1> eliotn..:

您正在寻找的更准确的heroku文档是:https: //devcenter.heroku.com/articles/container-registry-and-runtime

以上将指导您设置heroku容器插件并登录到注册表.您甚至可以使用dockerfile中的以下行将映像迁移到Dockerfile:

FROM ""

要轻松设置它,您将使用不同的后缀命名Dockerfiles,例如Dockerfile.mongo,Dockerfile.node,Dockerfile.flask和Dockerfile.javamvc.后缀告诉heroku用于您的Web应用程序的dyno名称.当您需要推送所有容器时,您可以使用以下命令执行此操作,只要所有dockerfiles都具有唯一的后缀,它将递归构建所有dockerfiles:

heroku container:push --recursive

由于Heroku不读取docker-compose文件,因此需要将任何环境变量setup/port exposure/etc迁移到Dockerfile.另外,由于我无法在Heroku上找到如何使用容器进行持久存储/卷安装,我建议您为mongo数据库使用Heroku插件.

在Heroku上,您将看到您的应用程序作为每个Dockerfile的一个dyno运行,每个dyno的名称作为每个Dockerfile的后缀.

更新:

    特拉维斯提出了一个很好的观点.确保在Dockerfile中有一个CMD语句,否则heroku将抛出错误.

    Yesterdayeroku最近还为该过程添加了一个步骤,您需要为heroku container:release 要更新的每个dyno 运行.


推荐阅读
author-avatar
mobiledu2502855777
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有