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版本
Golang打包一般的静态资源文件到二进制文件中还是比较简单,但是如果遇到使用Vue编写的后台界面,该如何打包呢?本文就是记录如何打包Vue到二进制包
《是妈妈是女儿》聚焦母女间未曾言明的爱意,以书信对话的形式呈现出各自的内心独白,表达彼此的牵挂。黄绮珊与希林娜依·高用跨越时空、打开心扉、深情对唱的形式,将天下母女爱的寄语化作心灵的倾诉。黄绮珊的每一句话,每一个字都演绎出了妈妈对女儿的爱,而希林依娜·高把女儿对妈妈的爱由不理解到理解再到感恩演绎得淋漓尽致。
平衡树(Balance Tree,BT) 指的是,任意节点的子树的高度差都小于等于1。
有时候为了打包需要敲很多命令,实在比较麻烦,所以这里记录了如何通过shell脚本将这些命令全部集中起来,后面可以直接执行该脚本就把需要的所有命令跑完。
frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
快速生成表格
Electron页面跳转、浏览器打开链接和打开新窗口
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,所以整了很久,本文将记录如何对这个进行操作,以便后期使用。
在使用Git的过程中,不想每次都输入用户名和密码去拉取代码,所以就需要保存这些信息,那么既然有保存了,就必须有清除功能。