在云服务时代最流行的部署方式就是容器部署,这也是最推荐的部署方式。对于 GoFrame 框架就不多介绍了,直接来初始化一个 demo,备用。
初始化一个项目:gf-demo
gf init gf-demo -u
-u 参数,是否将现有 goframe 框架更新为最新版本
进入项目文件夹,并执行 main.go
cd gf-demo && gf run main.go
输入如下两地址其一,查看服务
http://127.0.0.1:8000/swagger
http://127.0.0.1:8000/api.json
关于 Dockerfile 文件
初始化得到 gf 项目后,在路径 gf-demo/manifest/docker 下,会自动生成一个 Dockerfile 文件。
文件内容和详解如下:
...
关于基础镜像 loads/alpine:3.8
其作用是在构建 Docker 镜像时提供一个轻量级、安全且易于维护的基础环境。
国内的用户推荐使用该基础镜像,基础镜像的 Dockerfile 地址: https://GitHub.com/gqcn/dockerfiles ,仓库地址: https://hub.docker.com/u/loads 。
Alpine Linux 是一个基于 musl libc 和 busybox 的轻量级 Linux 发行版,它的目标是提供一个小而简单的操作系统,适用于容器化部署。Alpine Linux 的特点是其包管理系统 apk 非常小且简单,只包含必要的软件包,从而减少了系统的复杂性和潜在的安全风险。
轻量级:Alpine Linux 镜像通常比传统的 Linux 发行版(如 Ubuntu 或 CentOS)更小,这使得镜像下载和部署更快,占用更少的资源。
安全性:由于 Alpine Linux 只包含必要的软件包,因此减少了潜在的安全漏洞和攻击面。此外,Alpine Linux 还定期更新以修复已知的安全漏洞。
易于维护:Alpine Linux 的软件包管理工具 apk 非常简单易用,可以轻松地安装、升级和管理软件包。这使得在 Docker 镜像中进行依赖管理和软件安装变得更加容易。
兼容性:Alpine Linux 支持多种架构,包括 x86、ARM 等,这使得它可以在不同的硬件平台上运行。
自动化上传 Harbor 脚本
自动化脚本文件后缀名 .sh,例如:docker.sh,可直接鼠标双击执行。执行文件夹需在项目根目录,即和 main.go 同级。
如下代码,从打包到上传的整个流程脚本:
...
输入版本号:
执行后续脚本:
脚本执行完成后,在 Harbor 远程仓库查看是否上传成功: