在日常开发中,会写一些轮子,服务,需要部署到线上,来个online demo,或者try it out

而有些服务商,就专门提供了免费服务,可以部署你的应用

这里我们选择Heroku,以部署NodeJSGolang为例

把部署过程记录下来,方便下次部署的适时候,想不起来还能翻一番

部署前提

  • 一个Heroku账号,免费申请,免费应用数5个
  • 你应用的源码
  • Heroku命令行工具(可选)

NodeJS

我们这里搭建一个简单的HTTP服务器

你只需要2个文件即可部署

package.json

{
  "name": "heroku-deploy-example",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "node index.js"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/axetroy/heroku-deploy-example.git"
  },
  "author": "",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/axetroy/heroku-deploy-example/issues"
  },
  "homepage": "https://github.com/axetroy/heroku-deploy-example#readme"
}

index.js

const http = require("http");

const port = process.env.PORT || 3000;

const server = http.createServer();

server.on("request", function(req, res) {
  res.end("hello world, power by NodeJS");
});

server.listen(port, function() {
  console.log("Listen on port " + port);
});

然后托管在你的Github项目上

登陆Heroku,打开控制面部,新建应用,填写一个未被占用的名字

本次使用node-deploy-example

img1

新建成功后,进入到应用详情的Deploy选项,选择以Github方式部署

img2

然后搜索你的Github仓库名,并且选择部署

img3

部署成功

img4

然后访问域名试试: https://node-deploy-example.herokuapp.com

Go

这次部署Go我们选择使用Heroku CLI来部署

前提条件:

使用CLI部署,不要求你的代码要托管在某个仓库,比如Github,如果你的应用不开源,那么就选用CLI部署

首先要安装CLI工具,这里我使用npm安装

npm install -g heroku-cli

然后登陆你的账号

heroku login # 会要求你输入账号/密码

创建一个应用,名为go-deploy-example

然后新建文件

main.go

package main

import (
	"net/http"
	"log"
	"os"
)

func main() {

	port := os.Getenv("PORT")

	if port == "" {
		port = "3000"
	}

	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
		w.Write([]byte("hello world, power by Golang"))
	})

	log.Printf("Listen on portt %s\n", port)

	log.Fatal(http.ListenAndServe(":"+port, nil))
}

Procfile

web: go-heroku-deploy-example # 这里运行编译的二进制名

使用Godep生成依赖文件

godep save ./...

运行命令部署

git init
heroku git:remote -a go-deploy-example
git add .
git commit -am "make it better"
git push heroku master

到这里部署结束,访问这个试试: https://go-deploy-example.herokuapp.com/

注意

  1. 普通的账号,最多能部署5个应用。如果绑定信用卡,将不受限制。
  2. 应用内监听的端口应该从环境变量中读取
  3. 免费应用请珍惜. 不要搞事. (我在上面部署了5个挖矿机,被封号了)

部署过程非常的简单,如果你有好的应用要分享。

又苦于没那么线上服务器,那么就部署要Heroku上吧。

有个Online Demo更具有说服力哦