node.js - heroku 使用 github 部署 docker 镜像

标签 node.js docker github heroku

我有一个为网站提供服务的 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

然后确保您将更改向上推。

如果这没有帮助。我建议使用以下内容更新您的帖子:

  1. 文件树
  2. Dockerfile
  3. heroku.yml 文件

关于node.js - heroku 使用 github 部署 docker 镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60159590/

相关文章:

amazon-web-services - ECS 容器在调用 ssm API 端点时挂起

github - 错误: unable to prepare context: path "" not found while building and tagging docker image

在多步构建中复制时 Docker 构建失败

javascript - 如何在 ExpressJS 中定义模块或类

node.js - 我可以使用卡片在团队中显示多个按钮/选项吗?

javascript - 错误 : Module did not self-register.

docker - 如何在yml文件中的Github Action中部署docker容器?

html - 如何使 GitHub 中的 Gallery CSS slider 响应

git - github 私有(private)仓库中的 Terraform 模块

node.js - node js JWT 获取当前用户