跟着开源项目学GO(2)

362 阅读3分钟

「这是我参与2022首次更文挑战的第14天,活动详情查看:2022首次更文挑战

生命不息,学习不止

题外话

啊哈,明天就周六啦,跟不无心工作,假期快快来到我的身边,让我投入你的怀抱!!!

image.png

废话不多说,上货

在这里插入图片描述

开源项目——go-gin-api

go-gin-api

这是一个主要以gin框架为主,包含了一些常用功能,包括日志,菜单,权限,代码生成的功能的一个项目。

configs\fat_configs.toml

上回已经说完了前期的准备工作了,今天就可以开始跟着业务流程学go了,首先项目启动是项目配置页,如下

image.png

这个页面的数据是从configs\fat_configs.toml这个文件中读取的,我的部分配置如下,

image.png

大家可根据自己的设定变更

我猜很多小伙伴们不了解.toml文件,那我就来说说。

我们在日常项目开发中常用到的配置文件大多以json,ini,yaml为主,大多都采用括号和缩进原理。

toml文件彻底放弃了括号和缩进原理,采取了显式键名链的方式,显式的设计为一种配置文件格式,方便用于解析。

toml文件致力于配置文件的小型化和易读性,和go满配的

Dockerfile

除了这个配置文件,还有另一个重要的配置文件,Dockerfile,具体如下

# FROM 基于 golang:1.16-alpine
FROM golang:1.16-alpine AS builder

# ENV 设置环境变量
ENV GOPATH=/opt/repo
ENV GO111MODULE=on
ENV GOPROXY=https://goproxy.io,direct

# COPY 源路径 目标路径
COPY . $GOPATH/src/github.com/xinliangnote/go-gin-api

# RUN 执行 go build .
RUN cd $GOPATH/src/github.com/xinliangnote/go-gin-api && go build .

# FROM 基于 alpine:latest
FROM alpine:latest

# RUN 设置代理镜像
RUN echo -e http://mirrors.ustc.edu.cn/alpine/v3.13/main/ > /etc/apk/repositories

# RUN 设置 Asia/Shanghai 时区
RUN apk --no-cache add tzdata  && \
    ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
    echo "Asia/Shanghai" > /etc/timezone

# COPY 源路径 目标路径 从镜像中 COPY
COPY --from=builder /opt/repo/src/github.com/xinliangnote/go-gin-api /opt

# EXPOSE 设置端口映射
EXPOSE 9999/tcp

# WORKDIR 设置工作目录
WORKDIR /opt

# CMD 设置启动命令
CMD ["./go-gin-api", "-env", "fat"]

注释应该写的已经很清楚了,这里挑几个有用的说一说

# EXPOSE 设置端口映射
EXPOSE 9999/tcp

这个可以更改成自己想要的项目端口,如8080

# CMD 设置启动命令
CMD ["./go-gin-api", "-env", "fat"]

这个是一个cmd启动项目的命令,大家可根据昨天给出的环境自行添加

# ENV 设置环境变量
ENV GOPATH=/opt/repo
ENV GO111MODULE=on
ENV GOPROXY=https://goproxy.io,direct

这个环境变量主要是go的环境变量,主要是代理和mod,不然相关的包下载不下来。

你以为结束了

明天就直接走流程,看代码,冲冲冲

go.mod

go.mod 文件中存放的就是相关包及其版本,如下

image.png

如果发现自己的某个包下不下来就可以之前去git上拉取,然后在本地安装就可以使用了。

下一篇就讲,敬请期待

在这里插入图片描述

大家看完发现有什么错误,写在下面吧!跟我黑虎阿福比划比划! 在这里插入图片描述