go小白日记(二)——部署

版权声明:本文为simorel原创文章,未经simorel允许不得转载。 https://blog.csdn.net/Simoral/article/details/83215554

LINUX环境下部署go的前世今生



  1. 安装参见我的上一篇博客
  2. 青铜时代参考hardecz的CSDN博客

石器时代

部署全靠命令行:

// 以下go文件需要放入**GOPATH**内

// 编译
go build test.go

// 执行
./js

// 显示80端口占用
netstat -tunlp | grep 80
// 关闭占用80端口的应用
kill -9 xxxx

// 后台启动应用
nohup ./js &

青铜时代

一个脚本文件完成一键部署:

下面这一行会变更GOPATH,不要执行,参考了原博客的坑 export GOPATH=$(dirname $serviePath)

再GOPATH路径内新建脚本文件build.sh

# !/bin/bash
# 默认$GOROOT 已经存在,并为/usr/local/go/

log=jssdk.log
echo "删除日志文件$log"
rm $log

# appdir=go
app=test
appname=test.go

serviePath=`pwd`
# 下面这一行会变更GOPATH,不要执行,参考了原博客的坑
# export GOPATH=$(dirname $serviePath)

# cd $appdir
echo "path: $serviePath/$app"
p=$(pidof $serviePath/$app )

# 删除占用对应端口的应用
if [ $p ]
then
    echo "kill $app pid $p"
    kill -9 $p
else
    echo "no $app in system"
fi

# app build
echo "$appname building..."
go build $appname

# 后台应用启动
echo "$app start..."
# nohup $serviePath/$app >> $log &
nohup $serviePath/$app >> $log &

# 输出新执行应用pid
newpid=$(pidof $serviePath/$app ) 
echo "Success! new $app pid $newpid"

echo "end...."

# 退出脚本
exit

农业时代

go部署我总结了有四个步骤:

  1. 上传go文件
    • 因为我使用的是VSCode,那就找一个插件解决好了,推荐ftp-simple
    • 在文件内ctrl+shift+p,输入ftp,从下拉列表找到config
  2. 执行部署脚本
    • bash build.sh
  3. 部署go文件脚本
    详见青铜时代
  4. 查看log日志
    下载下来看吧

附录1-常见错误及解决方法

1. build失败

  • 失败原因:unexpected NUL in input
  • 解决方案:
    • 修改文件编码格式位UTF-8
    • 修改文件后缀为LR,而不是CRLF,(实际上这并不是关键)

2. build失败

  • 失败原因:找不到引入的那个github包(大致是这个意思)
  • 解决方案:
    • 使用go get github.com/xxx/yyy重新安装相应包
    • 如果上一步还不管用,建议看一下GOPATH是不是没有按照我之前的博客设置好,亦或者设置好了又被更改了。

猜你喜欢

转载自blog.csdn.net/Simoral/article/details/83215554