我有一个为网站服务的nodejs express应用。我使用buildpack / nodejs和Github与Heroku一起部署了它。每次我在Github上推送时,Heroku都会检测到推送并运行npm start脚本。

问题是我需要传递到包含nodejs应用程序的Docker镜像。我做到了,它可以在本地运行,我可以使用docker run -d -p 8000:8000 exporter运行它,并且可以工作。

我在根文件夹上添加了docker.yml文件,并在Github上进行了推送。但是heroku仍然在package.json中运行npm脚本,而忽略了docker.yml。

每当我推送到Github时,是否有办法让heroku从Dockerfile创建容器?

最佳答案

为了让Heroku了解您的heroku.yml文件,您需要做一些事情。
首先,您需要确保Dockerfile在根目录中。
其次,您需要确保正在构建和运行docker环境。
最后,确保将heroku堆栈设置为docker

因此,假设我们要确保目录树看起来像这样:

|-my_app
     |-app_contents
|-Dockerfile
|-heroku.yml
|-etc...

并且heroku.yml文件看起来像这样:
build:
   docker:
      web: Dockerfile
run:
   web: docker run -d -p 8000:8000 exporte

最后在您的heroku仓库中运行它:
heroku stack:set container

然后只需确保将更改推高即可。

如果这没有帮助。我建议您使用以下内容更新您的帖子:
  • 文件树
  • Dockerfile
  • heroku.yml文件
  • 关于node.js - heroku使用github部署docker镜像,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60159590/

    10-09 20:22
    查看更多