• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
孙龙 程序员
少时总觉为人易,华年方知立业难
博客园    首页    新随笔    联系   管理    订阅  订阅

golang线上多版本部署服务

----本地------------------------:

 

golang脚本位置:
/home/gocode/golang-asynctask

本地打包:
打开git bash 终端 

# 校验,必须输出 D:\gocode1.14\go1.14.3
D:/gocode1.14/go1.14.3/bin/go.exe env GOROOT

export GOROOT=D:/gocode1.14/go1.14.3
export GOOS=linux
export GOARCH=amd64

# 校验,必须输出 D:\gocode1.14\go1.14.3
D:/gocode1.14/go1.14.3/bin/go.exe env GOROOT


# 交叉编译
D:/gocode1.14/go1.14.3/bin/go.exe build -o wms_stock_inout_redis_queue_task ./cmd/wms/stock_task


# 清理缓存  如果编译报错可以执行
D:/gocode1.14/go1.14.3/bin/go.exe clean -cache
D:/gocode1.14/go1.14.3/bin/go.exe clean -modcache

# 拉依赖 如果编译报错可以执行
D:/gocode1.14/go1.14.3/bin/go.exe mod tidy

 


## 单独执行脚本:
/home/gocode/golang-asynctask/build/wms_stock_inout_redis_queue_task  --config=/home/gocode/golang-asynctask/config/dev/ --logdir=/home/gocode/golang-asynctask/logs


## supervisord管理:

配置文件:/etc/supervisor

vim /etc/supervisor/golang-asynctask-wms-stockinout-queue-task.conf


[program:golang-asynctask-wmsStockInOutQueue-task]
process_name=%(program_name)s_%(process_num)02d
command=/home/gocode/golang-asynctask/build/wms_stock_inout_redis_queue_task  --config=/home/gocode/golang-asynctask/config/dev/ --logdir=/home/gocode/golang-asynctask/logs
autostart=true
autorestart=true
user=root
numprocs=1
redirect_stderr=true
stderr_logfile=/home/gocode/logs/golang-asynctask-wmsStockInOutQueue-task-error.log
stdout_logfile=/home/gocode/logs/golang-asynctask-wmsStockInOutQueue-task-access.log

#查询状态
[root@serv-test supervisor]# supervisorctl status |grep golang-asynctask-wmsStockInOutQueue-task
golang-asynctask-wmsStockInOutQueue-task:golang-asynctask-wmsStockInOutQueue-task_00     RUNNING   pid 11035, uptime 0:00:15


##重启
[root@serv-test supervisor]# supervisorctl restart golang-asynctask-wmsStockInOutQueue-task:*
golang-asynctask-wmsStockInOutQueue-task:golang-asynctask-wmsStockInOutQueue-task_00: stopped
golang-asynctask-wmsStockInOutQueue-task:golang-asynctask-wmsStockInOutQueue-task_00: started

 

 

----线上------------------------:

服务器:

go-web1   | 172.18.xxxx.xxxx
cd /data2/gocode/golang_asynctask

编译:

1,线上直接编译  

go-web1   | 172.18.xxx.xxx
cd /data2/gocode/golang_asynctask
 
 
 
/data2/gocode/golang_asynctask/build/wms/wms_stock_inout_redis_queue_task  --config=/data2/gocode/golang_asynctask/config/prod/  --logdir=/data2/gocode/golang_asynctask/logs
 
 
线上任务管理:
cd /data2/supervisord.d
vim golang-asynctask-wms-stockinout-queue-task.ini
----------------配置文件---------------------------
[program:golang-asynctask-wmsStockInOutQueue-task]
command=/data2/gocode/golang_asynctask/build/wms/wms_stock_inout_redis_queue_task  --config=/data2/gocode/golang_asynctask/config/prod/  --logdir=/data2/gocode/golang_asynctask/logs
numprocs=1
process_name=%(program_name)s_%(process_num)02d
autostart=true
autorestart=true
startretries=1
user=root
redirect_stderr=true
stderr_logfile=/data2/supervisord.d/logs/golang_wmsStockInOutQueue_task_error.log
stdout_logfile=/data2/supervisord.d/logs/golang_wmsStockInOutQueue_task_access.log
 
 
 
/usr/local/go1.14.3/bin/go  
 
 
``` /data/ichunt-cron/crons/golang_wms_stock_inout_redis_queue_task.sh
#!/bin/bash
export GOROOT=/usr/local/go1.14.3
export GOBIN=$GOROOT/bin
export GOPATH=/data2/golang1.14.3
# 重点:GOBIN放PATH最前面,GOPATH/bin才加入PATH,不要把GOPATH加入PATH
export PATH=$GOBIN:$GOPATH/bin:$PATH
export GO111MODULE=on
export GOPROXY=https://goproxy.io
export GOCACHE=/data2/golang1.14.3/cache
 
 
 
cd /data2/gocode/golang_asynctask
 
echo "1. git pull 拉取代码"
 
git pull origin master
 
echo "2. 删除旧二进制"
rm -f "${BIN_FILE}"
 
BIN_FILE="/data2/gocode/golang_asynctask/build/wms/wms_stock_inout_redis_queue_task"
[ -f "${BIN_FILE}" ] && rm -f "${BIN_FILE}"
 
echo "3. go build 编译 go1.14.3"
/usr/local/go1.14.3/bin/go build -o "${BIN_FILE}"  /data2/gocode/golang_asynctask/cmd/wms/stock_task/main.go
 
echo "4. 添加可执行权限"
chmod +x "${BIN_FILE}"
 
echo "5. 校验编译产物go版本"
/usr/local/go1.14.3/bin/go version "${BIN_FILE}"
 
echo "6. supervisor 重启服务"
supervisorctl restart  golang-asynctask-wmsStockInOutQueue-task:*

 


 

 

 

2,本地编译后上传

 

本地编译

上传文件

重启动服务

supervisorctl restart  golang-asynctask-wmsStockInOutQueue-task:*

本文来自博客园,作者:孙龙-程序员,转载请注明原文链接:https://www.cnblogs.com/sunlong88/p/23013069

posted on 2026-09-17 15:22  孙龙-程序员  阅读(3)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3