程序在本地的开发环境完成后,如果没有经历部署到一个相对正式的发布环境这个步骤,那可能还差点意思。Heroku 是一个发布应用程序的平台,特点是支持的编程语言不少。隔一段时间会需要用一下 Heroku,但每次再用都会忘记操作步骤,所以记录一下。

示例程序

以下面这个简单的 node.js 程序为例

var express = require('express')
var app = express()

app.get('/', (req, res) => {
  res.send("Hello world")
})

app.listen(8000, () => {
  console.log('You app is listening on port 8000')
})

准备工作

  1. 注册 Heroku 用户
  2. 安装 Heroku CLI
  3. 在 Heroku CLI 中登录
heroku login

发布程序

  1. 把本地代码添加到 git 代码库
  2. 创建 Heroku app
heroku create

这条命令会在 Heroku 平台上创建一个 app,并把它关联的 git repo 添加到本地仓库的 remote

  1. 提交代码,Heroku 会根据提交的内容安装、编译
git push heroku master
  1. 访问 app
heroku open

配置文件

然而页面上并没有出现熟悉的 Hello World,程序出错了。

可以查看日志进行排查

heroku logs --tail

首先,除了你程序本来的内容,每个 Heroku app 会需要定义一个 Procfile,特别是默认值不起作用时。

此处简单定义 node.js 程序的入口

web: node index.js

另外,本地为了开发方便,把端口设置为 8000,但 Heroku app 默认访问的是 80 端口,需要对程序做相应修改

const PORT = process.env.PORT || 8000
app.listen(PORT, () => {
  console.log(`You app is listening on port ${PORT}`)
})

修改完成后,git pushheroku open,Hello world 成功。

小结

针对各种语言,Heroku 的 Getting Started 文档其实写得都很清楚。只是它内容更多更全,我需要按自己的顺序理一理

把程序发布到第三方平台,大概涉及这几点