首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用terraform将码头容器部署到heroku?

如何使用terraform将码头容器部署到heroku?
EN

Stack Overflow用户
提问于 2020-06-10 13:54:31
回答 1查看 763关注 0票数 1

我正在尝试通过terraform将一个容器化的nextJS应用程序部署到Heroku。

我可以使用以下容器成功地部署,而无需使用

代码语言:javascript
复制
provider "heroku" {
 email = var.HEROKU_EMAIL
}

resource "heroku_app" "app" {
    name = var.app_name
    region = "eu"
}

resource "heroku_build" "nextjs" {
    app = heroku_app.app.id
    buildpacks = ["https://github.com/heroku/heroku-buildpack-nodejs"]

    source = {
        path = "./app"
    }
}

resource "heroku_formation" "app" {
    app = heroku_app.app.id
    type= "web"
    quantity = 1
    size = "Free"
    depends_on = [heroku_app.app]
}

查看terraform文档,我似乎可以用以下方式将Heroku堆栈设置为container

代码语言:javascript
复制
resource "heroku_app" "app" {
    name = var.app_name
    region = "eu"
    stack = "container"
}

我创建了一个简单的heroku.yml

代码语言:javascript
复制
build:
    docker:
        web: Dockerfile
run: 
    web: npm build && npm start

然而,目前还不清楚heroku_build中的“源代码”应该是什么,目前我得到的是:

代码语言:javascript
复制
Error: error retrieving formation: Get https://api.heroku.com/apps/<app-name>/formation/xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx: Couldn't find that app.

这个github问题有一个相关的问题,但它对我的理解没有多大帮助

EN

回答 1

Stack Overflow用户

发布于 2020-09-04 20:56:33

您需要一个Dockerfile,告诉Heroku如何构建Docker映像:

代码语言:javascript
复制
FROM node:12
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
CMD [ "node", "server.js" ]

然后,对于heroku_build:

代码语言:javascript
复制
resource "heroku_build" "this" {
  app = heroku_app.this.name

  source = {
    path =  "."
  }
}

这样,您将“推送”当前文件夹(.)对于Heroku,它将找到heroku.yml并创建Docker映像。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62305364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档