read 是一个 shell 命令,用于读取用户输入信息
-p 是一个选项,标识提示信息,直接将其后的 "version:" 输出到命令行
最后一个 version 标识变量名,用户输入的信息存入此变量
read -p "version:" version
echo 是一个常用的 shell 命令,用于在终端上输出文本或变量的值
如下输出一串文本,$version 表示上一步输入的 version 版本号的值
echo "build start, version:$version"
echo "1) gf build running..."
使用 gf 工具构建名为 main 的 Go 程序,生成 amd64 架构的 Linux 可执行文件,并将结果存放在 temp 目录下
main.go:指定要编译的 Go 源代码文件
-n main:指定生成的可执行文件的名称为 main
-a amd64:指定目标架构为 amd64(即 64 位 Intel 架构)
-s linux:指定目标操作系统为 Linux
-p ./temp:指定输出目录为当前目录下的 temp 文件夹
gf build main.go -n www.laipuhuo.com. main -a amd64 -s linux -p ./temp
echo "2) docker build running..."
使用 Dockerfile 构建一个名为 test/test-demo 的镜像,并使用用户输入的版本号作为标签
【-t test/test-demo:"$version"】指定要创建的镜像的名称和标签
【-f ./manifest/docker/Dockerfile】指定用于构建镜像的 Dockerfile 文件路径
【.】指定 Docker 构建上下文的路径。一个点表示,使用当前目录作为构建上下文
docker build -t www.laipuhuo.com. test/test-demo:"$version" -f ./manifest/docker/Dockerfile .
echo "3) docker tag running..."
为刚刚构建的镜像添加一个新的标签,将其对应到 harbor.xxxxx.com 仓库,准备推送
docker tag test/test-demo:"version"
echo "4) docker pushing..."
将带有新标签的镜像推送到远程仓库
docker push harbor.xxxxx.com/test/test-demo:"$version"
echo "done!"
退出脚本,返回状态码 0,标识执行完成。这个值可以被调用脚本的父进程捕获,用于判断脚本执行的成功与否
exit 0 private void WebSocketOnMessage(object sender, MessageEventArgs e) { if (!e.IsText) { //暂时不支持 return; } Debug.WriteLine($"{www.laipuhuo.com. DateTime.Now.ToString("HH:mm:ss fff")},{e.Data}");
var receivedMessage = JsonConvertSlim.Decode<ChannelServerMessage>(e.Data);
xxxxx
}