golang 项目打包部署环境变量设置

news2024/9/24 9:26:03

最近将 golang 项目打包部署在不同环境,总结一下自己的心得体会,供大家参考。
1、首先要明确自己目标服务器的系统类型(例如 windows 或者Linux) ,如果是Linux 还需要注意目标服务器的CPU架构(amd或者arm)
目标服务器的CPU架构可执行命令:cat /proc/cpuinfo 查看

[root@KylinV10SP3 ~]# cat /proc/cpuinfo
processor       : 0
model name      : ARMv8 CPU
BogoMIPS        : 200.00
Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma dcpop asimddp asimdfhm
CPU implementer : 0x48
CPU architecture: 8
CPU variant     : 0x1
CPU part        : 0xd01
CPU revision    : 0

查看输出信息中的 Processor 字段,或者 Model name 字段,或者 Architecture 字段。如果看到 x86_64 或 i686,则表明是AMD64或Intel x86架构。如果看到 armv7l、armv8 等,则表明是ARM架构。

# 查看Processor字段
grep -i 'processor' /proc/cpuinfo
# 查看Model name字段
grep -i 'model name' /proc/cpuinfo
# 查看Architecture字段
grep -i 'architecture' /proc/cpuinfo

根据上述命令的输出结果,可以判断您的Linux系统使用的是AMD还是ARM架构。
2、查看本地的go环境
使用goland在Terminal中输入命令:go env

PS D:\workspace\dhcc-go-leishi-api\src> go env
set GO111MODULE=on
set GOARCH=amd64                                 
set GOBIN=                                       
set GOCACHE=C:\Users\libao\AppData\Local\go-build
set GOENV=C:\Users\libao\AppData\Roaming\go\env  
set GOEXE=.exe                                   
set GOEXPERIMENT=                                
set GOFLAGS=                                     
set GOHOSTARCH=amd64                             
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=D:\go_workspace\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=D:\go_workspace
set GOPRIVATE=
set GOPROXY=https://goproxy.cn,direct
set GOROOT=D:\Program Files\Go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=D:\Program Files\Go\pkg\tool\windows_amd64
set GOVCS=
set GOVERSION=go1.19.3
set GCCGO=gccgo
set GOAMD64=v1
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=D:\workspace\dhcc-go-leishi-api\go.mod
set GOWORK=
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -Wl,--no-gc-sections -fmessage-length=0 -fdebug-prefix-map=C:\Users\libao\AppData\Local\Te
mp\go-build1857876918=/tmp/go-build -gno-record-gcc-switches

以上 GOOS=windows,GOARCH=amd64,如果服务器是windows 系统,直接编译就可以,执行命令 go build -o leishi-linux main.go,需要在main文件的同级目录下执行。
3、根据不同的目标服务器环境设置的本地环境变量
(1) 在window下打包成Linux系统adm包:
在项目main.go同级目录下,逐条执行以下命令
set CGO_ENABLED=0
go env -w GOOS=linux
go env -w GOARCH=amd64
go build -o leishi-linux main.go
此时会生成一个没有后缀的二进制文件
在这里插入图片描述
将leishi-linux文件放入linux系统任何文件夹下,执行以下命令:
chmod 777 leishi-linux
./leishi-linux

[root@KylinV10SP3 ~]# cd /usr/local/leishi
[root@KylinV10SP3 leishi]# chmod 777 leishi-linux 
[root@KylinV10SP3 leishi]#  ./leishi-linux
2024/07/08 16:58:07 连接数据库...
2024/07/08 16:58:07 连接数据库完成...
2024/07/08 16:58:07 初始化数据库完成...
2024/07/08 16:58:07 Starting server on port :5100...

当然也可以设置后台运行,执行:nohup ./leishi-linux > leishi-linux.log 2>&1 &
(2) 在window下打包成Linux系统arm包:
在项目main.go同级目录下,逐条执行以下命令
set CGO_ENABLED=0
go env -w GOOS=linux
go env -w GOARCH=arm64
go build -o leishi-linux main.go
此时会生成一个没有后缀的二进制文件
运行方法同上

(2) 在window下打包成Linux系统arm包:
在项目main.go同级目录下,逐条执行以下命令
set CGO_ENABLED=1
go env -w GOOS=windows
go env -w GOARCH=amd64
go build -o leishi main.go
此时会生成一个exe后缀的程序文件
在这里插入图片描述
将文件移动到目标位置,直接点击就以运行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1910417.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

字节码编程javassist之修改返回值

写在前面 本文看下如何修改返回值。 代码 需要增强的类: package com.dahuyou.javassist.huohuo.cc;import java.math.BigDecimal;public class MyApiTestNoAnnotation {public double queryUserInfo(String uId){return BigDecimal.ONE.doubleValue();}}插桩类…

聚道云赋能,财务流程大提速,NC凭证对接一键通!

客户介绍 某煤炭交易中心有限公司是中国煤炭行业的重要交易与服务平台之一。公司依托丰富的煤炭资源优势和深厚的行业底蕴,致力于打造煤炭交易、物流、金融、信息、技术服务等多功能于一体的综合性服务平台。公司不仅促进了煤炭资源的合理流动和有效配置&#xff0…

如何在抖音小程序上展示VR全景?

如果您或者您服务的甲方需要在抖音小程序中打开720全景漫游链接,就需要在720云平台进行小程序校验。总体来说,在720云平台提交对应小程序信息后,您将获得720云业务域名,将此业务域名配置到抖音小程序后台,即完成校验&a…

本地部署,AuraSR全新图像超分辨率模型

目录 前言: Usage docker安装 运行结果 结论: Tip: 问题1:docker部署 问题2:API处理 问题3:网络问题 问题4:程序开发 前言: 一款名为AuraSR的全新图像超分辨率模型引起了…

springbootAl农作物病虫害预警系统-计算机毕业设计源码21875

摘要 随着农业现代化的推进,农作物病虫害的防治已成为农业生产中的重要环节。传统的病虫害防治方法往往依赖于农民的经验和观察,难以准确、及时地预测和防控病虫害的发生。因此,开发一种基于现代信息技术的农作物病虫害预警系统,对…

uni-app三部曲之一: Pinia使用

1.引言 最近在学习移动端的开发,使用uni-app前端应用框架,通过学习B站的视频以及找了一个开发模板,终于是有了一些心得体会。 B站视频1:Day1-01-uni-app小兔鲜儿导学视频_哔哩哔哩_bilibili B站视频2:01-课程和uni的…

Redis 实现的延时队列组件

最近看开源看到一个好用的延时队列组件,已经上生产。代码量很少,主要就是利用Redis监听过期键实现的。然后搞点策略模式柔和柔和。利用Spring Start 封装了一下,全是俺掌握的知识,稍微研究了下就搞懂了。觉得挺有用的,…

人话学Python-基础篇-数字计算

一:数字类型 对于最常见的数据类型,数字在Python中分为三类: 整型(int) 表示的是整数类型的所有数字,包括正整数,负整数和0。和C语言不同的是,Python中的int型没有范围的限制,理论上可以从无限小的整数取到…

想实现随时随地远程访问?解析可道云teamOS内网穿透功能

在数字化时代,无论是个人还是企业,都面临着数据共享与远程访问的迫切需求。 比如我有时会需要在家中加班,急需访问公司内网中的某个关键文件。 然而,由于公网与内网的天然隔阂,这些需求往往难以实现。这时&#xff0c…

智慧运维管理平台建设方案(PPT原件)

1、智慧运维系统建设背景 2、智慧运维系统建设目标 3、智慧运维系统建设内容 4、智慧运维系统建设技术 5、智慧运维系统建设流程 6、智慧运维系统建设收益 软件全套资料获取及学习:本文末个人名片直接获取或者进主页。

前端工程师

15年前,前端主流的框架jquery,那个时候还没有前端工程师,后端开发人员既要写后台业务逻辑,又要写页面设计,还要应付IE不同版本浏览器兼容问题,非常的繁琐、难搞。 现在前端框架很多、很强大,前端开发工程师…

响应式的vue框架搭建个人博客网站模板

Vue框架搭建个人博客站点,html5 响应式个人博客模板 微信扫码免费获取源码

(NeurIPS,2022)Knowledge-CLIP:使用知识图谱进行CLIP

文章目录 Contrastive Language-Image Pre-Training with Knowledge Graphs相关资料摘要引言回顾CLIPKnowledge-CLIP数据准备模型架构训练目标 Contrastive Language-Image Pre-Training with Knowledge Graphs 相关资料 论文:Contrastive Language-Image Pre-Tra…

基于springboot+vue+uniapp的机电公司管理信息系统

开发语言:Java框架:springbootuniappJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包&#…

js计算两个日期直接的间隔天,2018/12/14到2017/11/10有多少天

const startDate new Date(2017-11-10)const endDate new Date(2018-12-14)const diffTime Math.abs(endDate - startDate)const diffDays Math.ceil(diffTime / (1000 * 60 * 60 * 24))console.log(diffDays) // 输出天数差 人工智能学习网站 https://chat.xutongbao.top…

如何将libwebsockets库编译为x86架构

在之前的文章中,我们已经详细介绍了如何交叉编译libwebsockets并将其部署到ELF 1开发板上。然而在调试阶段,发现将libwebsockets在Ubuntu环境下编译为x86架构可能更为方便和高效。 通过在主机环境中编译运用x86架构下的libwebsockets库,可以…

详细解读COB显示屏使用的共阴技术原理

倒装COB显示屏技术中采用的共阴技术是一种旨在提升能效并且减少驱动功耗的LED驱动方式,常规LED显示屏一般采用共阳极或者独立驱动的方式,而共阴技术就有所不同了,其基本原理如下: 一、基本概念:   共阴技术是指在LED…

AGI 之 【Hugging Face】 的【文本分类】的[数据集][文本转换成词元]的简单整理

AGI 之 【Hugging Face】 的【文本分类】的[数据集][文本转换成词元]的简单整理 目录 AGI 之 【Hugging Face】 的【文本分类】的[数据集][文本转换成词元]的简单整理 一、简单介绍 二、文本分类 三、数据集 1、Hugging Face Datasets 库 2、如果我的数据集不在Hub上那该…

中国科学院院士丁汉:人形机器人——机器人与人工智能结合的爆发点

工业制造是国民经济的重要支柱,是实现发展升级的国之重器。早在 2002 年,党的十六大就曾提出,坚持以信息化带动工业化,以工业化促进信息化,走出一条科技含量高、经济效益好、资源消耗低、环境污染少、人力资源优势得到…

tableau折线图绘制 - 4

tableau折线图绘制 1. 电影数量变化折线图绘制1.1 折线图及显示标签1.2 排除异常值1.3 修改纵坐标名称1.4 最大值注释 2.电影票房变化折线图2.1 数据类型位置拖拽2.2 折线图绘制2.3 修改标签数据格式 3. 2015年电影数量与票房变化折线图3.1 年份筛选3.2 横轴单位单位设置3.3 单…