Heroku和Docker与heroku.yml一起部署:如何从“ web”更改映像名称?

时间:2019-09-23 08:35:11

标签: docker heroku

当我使用以下Dockerfileheroku.yml将Vue.js应用程序推送到Heroku应用程序时,它运行良好。

bootstrapdebug/Dockerfile

FROM node:12.10.0-alpine
WORKDIR /app
COPY . /app/bootstrapdebug
WORKDIR /app/bootstrapdebug
RUN apk update && \
    npm install
CMD ["npm", "run", "serve", "--", "--port", "$PORT"]

heroku.yml

build:
  docker:
    web: bootstrapdebug/Dockerfile
  config:
    NODE_ENV: production 

但是,在heroku.yml中,一旦将图像名称从web更改为vue(或任何其他名称),应用程序就会因出现以下错误而卡住。 即使在我将图像名称恢复为“ web”之后,也会发生这种情况。

我从heroku logs --tail得到的最后一行:

2019-09-23T08:24:20.747248+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/favicon.ico" host=murmuring-anchorage-42007.herokuapp.com request_id=e12af6b0-4139-4bad-8ab8-a07559587d3a fwd="126.112.54.50" dyno= connect= service= status=503 bytes= protocol=https

为什么会这样?

P.S。

我所做的与制作这个项目有关

vue-cli create bootstrapdebug
cd bootstrapdebug && npm install

1 个答案:

答案 0 :(得分:0)

如果您希望您的应用程序响应HTTP it must be declared as a web process

  

Heroku应用程序的web进程类型很特殊:它是唯一可以从Heroku路由器接收外部HTTP流量的进程类型。如果您的应用包含Web服务器,则应将其声明为应用的web进程。

web外,release process type is also special

  

release进程类型用于指定在应用程序的release phase期间运行的命令。

     

...

     

除了web和release之外,没有其他进程类型具有特殊的属性。