GoLang开发环境搭建和使用docker制作golang项目的镜像

一、开发环境准备

go官方api: https://studygolang.com/pkgdoc

1、安装sdk

官网下载 https://studygolang.com/dl

2、环境变量

  • 环境变量windows 会自动配置好,但是默认都在c盘。安装路径自定义过注意修改。

    • 避坑:GOPATH默认会配置在环境变量的上面用户变量里面,注意删除了,否则在下面系统环境变量里配置的不会生效。
  • cmd查看go版本号 go version

  • cmd查看go环境信息 go env

  • 工具包下载不了,设置国内代理GOPROXY:

go env -w GO111MODULE=on
go env -w GOPROXY=https://proxy.golang.com.cn,direct

3、VsCode开发

详细开发方法参考文章:https://blog.csdn.net/qq_41048567/article/details/127681203

关于Go项目的目录结构

Go的项目结构是官方规定的标准,要按照这个目录结构来,且文件夹命名是固定的

  • GOPATH:可以先暂时将他理解成我们的工作空间(我们之后Go的开发都将在GOPATH这个目录下进行)
  • bin:用来放置编译后的可以执行文件, 比如在windows环境下,go的代码被编译后就会在该目录下生成一个.exe的可执行文件
  • pkg:在Go编译过程中会产生许多的库文件则放置在该目录下
  • src:存放源码文件的地方,我们就在该目录下编写代码。一般都要在src下面按不同项目新建子目录进行管理,层级不限。
问题
  • 在第一次使用vscode进行golang项目运行时,控制台的输出端显示乱码。
  • 在终端进行go version时,显示go不是内部命令。
  • 解决:在go扩展的设置里setting.json中添加如下配置
# 路径修改为自己的实际路径
"go.gopath": "C:\\mywork\\goProjects",
"go.goroot": "D:\\Program Files\\Go"

4、go build 打包

打包为exe

# cmd中修改go环境变量
go env -w GOARCH="amd64"
go env -w GOOS="windows"
# 打包为exe
go build

打包为Linux环境下可执行文件

# cmd中修改go环境变量
go env -w GOARCH="arm64"
go env -w GOOS="linux"

# 打包为Linux环境下可执行文件
go build

二、docker镜像制作

1、构建Linux可执行文件

  • 修改本地go环境系统架构为linux、arm64,根据要部署的服务器架构修改。
  • 生成可执行文件 go build
# cmd中修改go环境变量
go env -w GOARCH="arm64"
go env -w GOOS="linux"

# 打包为Linux环境下可执行文件
go build

2、编写Dockerfile

FROM ubuntu:20.04
LABEL maintainer="jkenergy"

# 设置镜像的语言 支持中文,否则中文都乱码
ENV LANG C.UTF-8
ENV LANGUAGE C.UTF-8
ENV LC_ALL C.UTF-8

ENV DOCKER_LOGS=stdout

RUN mkdir -p /opt/bms

VOLUME ["/opt/bms/logs"]

WORKDIR /opt/bms

COPY jk-bms .
COPY jk ./jk
COPY assets ./assets

RUN chmod +x jk-bms

EXPOSE 9090

# CMD 设置启动命令
CMD ["./jk-bms", "-env", "fat"]

3、打包镜像

  • 目录文件准备
  • 将源码中的 assets目录和jk/bms/configs目录拷贝到Dockerfile的同级目录
  • 将准备好的可执行文件拷贝到Dockerfile的同级目录
  • 在Dockerfile目录执行docker命令:docker build -t bms-go .
  • 创建并启动容器,映射端口:docker run -dit --name bms-go -p9090:9090 bms-go:latest
  • 验证:curl http://127.0.0.1:9090/bms/healthCheck

参考资料

  • 环境安装:
    • https://blog.csdn.net/qq_41048567/article/details/127643845
  • GoLang命令:
    • https://blog.csdn.net/QcloudCommunity/article/details/126047057
  • 开发工具:
    • https://blog.csdn.net/xinshuzhan/article/details/122383757
    • https://blog.csdn.net/qq_41048567/article/details/127681203
  • 使用VsCode开发:
    • https://blog.csdn.net/qq_41048567/article/details/127681203
  • VsCode快捷键:
    • https://blog.csdn.net/weixin_46655235/article/details/121788623
  • go-gin-api 文档
    • https://www.yuque.com/xinliangnote/go-gin-api/ngc3x5
  • Golang标准库文档
    • https://studygolang.com/pkgdoc
  • go菜鸟教程
    • https://www.runoob.com/go/go-functions.html
  • Gin Web Framework
    • https://gin-gonic.com/zh-cn/docs/examples/html-rendering/
  • EasyGoAdmin
    • https://gitee.com/easygoadmin/EasyGoAdmin_Gin_EleVue/tree/master/
  • go常用的web框架爱
    • https://blog.csdn.net/weixin_50196917/article/details/124611854
  • go官方api:
    • https://studygolang.com/pkgdoc
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值