我有一个为网站服务的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
然后只需确保将更改推高即可。
如果这没有帮助。我建议您使用以下内容更新您的帖子:
关于node.js - heroku使用github部署docker镜像,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60159590/