研究了半天发现还是使用beego框架顺手,虽然不是新框架但是用着非常方便,做个小的后台运维系统不在乎美观的
Posted freewebsys
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了研究了半天发现还是使用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
以上是关于研究了半天发现还是使用beego框架顺手,虽然不是新框架但是用着非常方便,做个小的后台运维系统不在乎美观的的主要内容,如果未能解决你的问题,请参考以下文章
折腾了半天,发现还是xubuntu比较好用,最新更新到了20.4 的系统了,对比了下Raspberry Pi Desktop桌面版本x86