Shell脚本打包Go、Vue和上传至Docker仓库记录
简介有时候为了打包需要敲很多命令,实在比较麻烦,所以这里记录了如何通过shell脚本将这些命令全部集中起来,后面可以直接执行该脚本就把需要的所有命令跑完。
完整打包一个Go应用是比较麻烦,会有各种命令,因为涉及到前端Vue、Go编译和Docker等。比如需要先打包静态文件,编译Golang二进制包,上传Docker仓库,然后做一些清理工作。这里主要记录使用一个shell脚本将所有的命令全部写入进去,等后面需要再次需要重复上面的步骤时,就可以只执行该脚本即可。
1、脚本文件内容如下
使用该脚本的时候需要对 !!!xxxx!!! 这个内容进行替换成自己的信息
#镜像名称
image_name="!!!!镜像名称!!!!"
#docker仓库地址
docker_addr="!!!!自己的仓库地址!!!!/${image_name}"
#版本号需要在执行脚本的时候进行输入,格式为0.0.1的格式
version=$1
if [ $# -ne 1 ];then
echo "只能包含一个版本号参数,如1.0.0、1.21.23"
exit
fi
#定义编译函数
build(){
#编译后台界面资源文件
cd templates/ && npm run build --pro && cd ../
#删除编译的文件
rm -rf ${image_name}
#使用bindata打包所有的静态文件
go-bindata -o=bindata/bindata.go -pkg=bindata ./templates/dist/...
#编译
go build --tags netgo -o ${image_name}
#编译镜像
docker build -t ${image_name}:${version} . --network=host
#镜像打tag
docker tag ${image_name}:${version} ${docker_addr}:${version}
docker tag ${image_name}:${version} ${docker_addr}:latest
#推送镜像
docker push ${docker_addr}:${version}
docker push ${docker_addr}:latest
#删除镜像
docker rmi ${image_name}:${version} ${docker_addr}:latest ${docker_addr}:${version}
}
#提示信息
read -r -p "确认当前版本使用:${version} 版本号编译Docker镜像吗? [Y/n] " input
case $input in
[yY][eE][sS]|[yY])
build
;;
[nN][oO]|[nN])
echo "退出"
;;
*)
echo "输入错误,退出"
exit 1
;;
esac
2、编译前准备
- 首先,检查本地是否安装了编译所需要的环境
- 其次,检查仓库是否进行了登录,命令如下
docker login 仓库地址
- 最后,要讲上面的内容存在项目根目录下,并设置成可执行权限
3、执行脚本
> ./build.sh 0.0.1 #编译成0.0.1版本
在使用阿里云RDS中,一般我们出于权限的考虑不会让其他用户直接进行外网访问。所以这里我们就采用Navicat加HTTP通道来访问RDS数据库。
《血色湘西》瞿先生临死前的独白,振奋人心。
Excel如何取最大值、最小值、排名第几的数据,这些都是在我们使用Excel中非常常用的功能。本文主要介绍下这几种函数的使用。
有向图根无向图的最大区别在于有向图是具有方向的,所以在实现上也会有很大的不同。
lsof命令的全称为:list open file,也就是列出系统中已经打开的文件,通过该命令就可以根据文件找到对应的进程信息,也可以根据进程信息找到进程打开的文件。 如果系统中没有lsof名,可以使用后面的命令进行安装:yum -y install lsof
快速生成表格
Electron页面跳转、浏览器打开链接和打开新窗口
在使用Git的过程中,不想每次都输入用户名和密码去拉取代码,所以就需要保存这些信息,那么既然有保存了,就必须有清除功能。
Docker编译镜像出现:fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.12/main: temporary error (try again later)
WARNING: Ignoring APKINDEX.2c4ac24e.tar.gz: No such file or directory问题
在Mac电脑中,如何对Git的用户名和密码进行修改呢?起初不懂Mac,所以整了很久,本文将记录如何对这个进行操作,以便后期使用。