研究了半天发现还是使用beego框架顺手,虽然不是新框架但是用着非常方便,做个小的后台运维系统不在乎美观的

1,关于go-admin


想开发一个使用golang 用的管理后端,发现还是使用beego开发方便。
每个框架都有自己适合的地方。
现在很多项目都在使用 api + vue 前后端分离的方式进行开发,微服务的方式开发。
但是也有些场景可以使用 刷新页面的方式开发。节约时间成本。

如果你是老老程序员,还会jquery,可以尝试下。
如果你要新学习的话,直接vue做项目,然后启动两个工程吧,就别学jquery了。

2,使用beego v2开发


把之前研究的golang admin后台使用 jquery 项目的又拿出来了。
升级到了 v2 版本。
发现beego 也做了兼容,只需要把:

	"github.com/astaxie/beego"
        
	"github.com/astaxie/beego/orm"
	"github.com/astaxie/beego/logs"
	"github.com/astaxie/beego/context"

替换成:

	beego "github.com/beego/beego/v2/adapter"
        
	"github.com/beego/beego/v2/adapter/context"
	"github.com/beego/beego/v2/adapter/logs"
	"github.com/beego/beego/v2/adapter/orm"

之前的项目是5 年前创建的还用 vendor 命令呢,现在直接使用 go mod 进行依赖。
使用代理加速下载。

# 配置 GOPROXY 环境变量
export GOPROXY=https://proxy.golang.com.cn,direct

之前的老项目地址:
https://github.com/golangpkg/go-admin/
新项目地址放到gitee 上面了:
https://gitee.com/study-demo-all/go-admin

3,同时研究了下使用alpine 进行编译golang


用docker进行加速编译。用阿里云进行代理。

# 使用docker 进行基础镜像代码构建。
# 使用 golang 版本是1.19 基础镜像使用 alpine 最小
# 

ARG BASE=golang:1.19-alpine
FROM ${BASE} AS builder

RUN sed -e 's/dl-cdn[.]alpinelinux.org/mirrors.aliyun.com/g' -i~ /etc/apk/repositories
# 解决 sqlite3 使用c++ 编译依赖 stdlib 库和 gcc工具问题。
RUN apk update && apk add build-base


# 设置变量,方便替换。
ENV PROJECT_NAME go-admin
# 配置 GOPROXY 环境变量
ENV GOPROXY https://proxy.golang.com.cn,direct

WORKDIR /go/src/$PROJECT_NAME

COPY . .

# export GO111MODULE=off 或者 执行 go mod tidy  
RUN cd /go/src/$PROJECT_NAME \
    go mod tidy && go build -o main.bin && ls -lh

#运行时镜像。
FROM alpine

RUN sed -e 's/dl-cdn[.]alpinelinux.org/mirrors.aliyun.com/g' -i~ /etc/apk/repositories
RUN apk update && apk add bash ca-certificates sqlite && rm -rf /var/cache/apk/*


EXPOSE 8080

WORKDIR /opt

# 设置变量,方便替换。
ENV PROJECT_NAME go-admin

COPY --from=builder /go/src/$PROJECT_NAME/main.bin \
        /opt/main.bin

COPY --from=builder /go/src/$PROJECT_NAME/static /opt/static
COPY --from=builder /go/src/$PROJECT_NAME/views /opt/views
COPY --from=builder /go/src/$PROJECT_NAME/conf /opt/conf

#COPY --from=builder /go/src/$PROJECT_NAME/controllers /opt/src/controllers
#COPY --from=builder /go/src/$PROJECT_NAME/routers /opt/src/routers

ENTRYPOINT ["/opt/main.bin"]

构建完成镜像,大小只有 34 mb非常的小了,因为偶尔可能需要使用ffmpeg,各种库啥的。
还是需要一个小的系统做底座的。

REPOSITORY                 TAG           IMAGE ID       CREATED          SIZE
study-demo-all/go-admin    latest        e3e0097f7209   45 minutes ago   34.4MB

猜你喜欢

转载自blog.csdn.net/freewebsys/article/details/129154929
今日推荐