Deploy Golang Application on Ubuntu 16.04

  • A+
所属分类:golang linux

首先我们编写一个简单的HTTP处理文件,代码如下:

package main

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

func handleFunc(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello!")
}

func main() {
    http.HandleFunc("/api", handleFunc)
    log.Println("Server is running:", 3001);
    log.Fatal(http.ListenAndServe(":3001", nil))
}

第一步:创建部署文件(deploy.sh)

打开命令行,创建deploy.sh并修改其执行权限

touch deploy.sh
chmod u+x deploy.sh

接下来我们编辑它的内容如下:

#!/bin/sh
GOOS=linux GOARCH=amd64 go build

编辑完成后,我们在代码同一目录下执行他

./deploy.sh

它将生成一个可执行文件,比如myapp

第二步:创建一个服务来运行Golang应用程序(myapp.service)

我们复制下面的内容来创建新的文件myapp.service

[Unit]
Description= instance to serve api
Requires=mysql.service
After=network.target
After=mysql.service
[Service]
User=root
Group=www-data
Environment=GOPATH=/var/www/
ExecStart=/var/www/myapp
[Install]
WantedBy=multi-user.target

在这个服务文件中我需要mysql,如果你不使用MYSQL服务器,你可以删除它
然后我们移动myapp.service到指定目录

scp myqpp.service /etc/systemd/system/

现在运行此命令启动服务(启动并运行我们的Golang应用程序)

sudo systemctl start myapp

或者关闭服务

sudo systemctl stop myapp
weinxin
我的微信
欢迎来撩!!

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: