在日常开发中,会写一些轮子,服务,需要部署到线上,来个online demo
,或者try it out
而有些服务商,就专门提供了免费服务,可以部署你的应用
这里我们选择Heroku,以部署NodeJS
和Golang
为例
把部署过程记录下来,方便下次部署的适时候,想不起来还能翻一番
部署前提
- 一个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
新建成功后,进入到应用详情的Deploy
选项,选择以Github方式部署
然后搜索你的Github仓库名,并且选择部署
部署成功
然后访问域名试试: 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/
注意
- 普通的账号,最多能部署5个应用。如果绑定信用卡,将不受限制。
- 应用内监听的端口应该从环境变量中读取
- 免费应用请珍惜. 不要搞事. (我在上面部署了5个挖矿机,被封号了)
部署过程非常的简单,如果你有好的应用要分享。
又苦于没那么线上服务器,那么就部署要Heroku上吧。
有个Online Demo
更具有说服力哦
大牛们的评论:朕有话说
还没有人评论哦,赶紧抢沙发!