「这是我参与2022首次更文挑战的第14天,活动详情查看:2022首次更文挑战」
生命不息,学习不止
题外话
啊哈,明天就周六啦,跟不无心工作,假期快快来到我的身边,让我投入你的怀抱!!!
废话不多说,上货
开源项目——go-gin-api
go-gin-api
这是一个主要以gin框架为主,包含了一些常用功能,包括日志,菜单,权限,代码生成的功能的一个项目。
configs\fat_configs.toml
上回已经说完了前期的准备工作了,今天就可以开始跟着业务流程学go了,首先项目启动是项目配置页,如下
这个页面的数据是从configs\fat_configs.toml这个文件中读取的,我的部分配置如下,
大家可根据自己的设定变更
我猜很多小伙伴们不了解.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 文件中存放的就是相关包及其版本,如下
如果发现自己的某个包下不下来就可以之前去git上拉取,然后在本地安装就可以使用了。
下一篇就讲,敬请期待
大家看完发现有什么错误,写在下面吧!跟我黑虎阿福比划比划!