我有一个为网站提供服务的 Nodejs Express 应用程序。我使用 buildpack/nodejs 和 Github 将其与 Heroku 一起部署。每次我在 Github 上推送时,Heroku 都会检测到推送并运行 npm 启动脚本。
问题是我需要传递到包含 Nodejs 应用程序的 Docker 镜像。我做到了,它在本地运行,我可以使用 docker run -d -p 8000:8000 exporter 运行它,它可以运行。
我在根文件夹中添加了 docker.yml 文件并推送到了 Github 上。但heroku仍然运行package.json中的npm脚本,忽略docker.yml。
有没有办法让heroku每次推送到Github时都从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 repo中运行它:
heroku stack:set container
然后确保您将更改向上推。
如果这没有帮助。我建议使用以下内容更新您的帖子:
- 文件树
- Dockerfile
- heroku.yml 文件
关于node.js - heroku 使用 github 部署 docker 镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60159590/