当前位置: 首页 > news >正文

成功的o2o平台有哪些上海企业网站排名优化

成功的o2o平台有哪些,上海企业网站排名优化,网站布局策划案,5000人朋友圈推广多少钱概要 本文将介绍如何使用 Shell 脚本打包来优雅地生成Go的程序包。我们将创建一个简单的脚本#xff0c;用于构建、测试和部署 Golang 项目。 前言 随着Go语言的普及#xff0c;越来越多的开发人员选择使用Go编写代码。虽然越来越多的公司项目已使用持续集成/持续部署…概要 本文将介绍如何使用 Shell 脚本打包来优雅地生成Go的程序包。我们将创建一个简单的脚本用于构建、测试和部署 Golang 项目。 前言 随着Go语言的普及越来越多的开发人员选择使用Go编写代码。虽然越来越多的公司项目已使用持续集成/持续部署CI/CD工具用于自动化构建、测试和部署Go程序包但存在一些部署在ECS服务器的Go程序包或需要手动编译打包上传镜像仓库的镜像。然而手动创建和管理这些程序包可能会变得相当繁琐。因此为了提高开发效率使用Shell脚本来自动化这个过程是一个不错的选择。 Shell脚本 针对上述说到的两种情况一个是部署在ECS上Go服务程序包、另一个是手动部署K8s上的Go服务镜像包下面分别给出代码。 一键生成Go程序包 本人使用Window系统开发使用Go的gracehttp实现服务平滑重启但Window对信号量处理存在问题导致在Window环境下生成的Go程序包无法平滑重启所以这里使用alpine将项目编译生成程序包到本地项目目录中完美解决该问题。 deploy.sh #!/bin/bash# 定义环境变量 environments(test prod) imagego-demo# 函数显示绿色成功信息 function success {echo -e \033[1;32m$1\033[0m }# 函数显示绿色成功信息 function info {echo -e \033[33m$1\033[0m }# 函数显示红色错误信息并退出 function error {echo -e \033[1;31m$1\033[0mexit 1 }info Please select the packaging environment:(Select number) select env in ${environments[]}; doif [ $env test ]; thenport80success The packaging environment you entered is: $envbreakelif [ $env prod ]; thenport8080success The packaging environment you entered is: $envbreakelseerror Invalid environment selection, please re-enterexit 1fi doneinfo \nbuild start:info \n1) docker build running... docker build --build-arg PORT$port -t $image:$env -f deploy/docker/Dockerfile . /dev/nullinfo \n2) docker running... docker run -itd --name $image-$env $image:$env /dev/nullinfo \n3) docker cp package... docker cp $image-$env:/app/main_$port ./info \n4) delete containers... docker ps -a | grep $image-$env* | awk {print $1} | xargs docker rm -f /dev/nullinfo \n5) remove images... docker rmi -f $(docker images $image:$env* -q | sort | uniq) /dev/nullinfo \nbuild done!exit 0 Dockerfile FROM golang:1.17.6-alpineLABEL maintainerxxxxxx.com# 文件名称 ARG PORT# 设置工作目录 ENV WORKDIR /app# 关闭CGO ENV CGO_ENABLED 0# 设置GOOS和GOARCH ENV GOOS linux ENV GOARCH amd64 ENV GOPROXY https://goproxy.cn,direct# 声明工作目录 WORKDIR $WORKDIR# 拷贝整个项目到工作目录 COPY . .# 项目依赖包 RUN go mod download# 项目编译 RUN go build -ldflags-s -w -o $WORKDIR/main_$PORT ./main.go# 运行300s # CMD [sleep, 300] 执行结果 一键生成Go镜像包 现在我们很多项目部署在K8s上所以将程序编译打包成进行镜像其中需要将代码打包成程序包而且需要将程序包上传到仓库供k8s下载使用通过编写Xshell程序可以大大提高效率。 deploy.sh #!/bin/bash# 仓库域名 WAREHOUSE_DOMAINharbor.xxx.com # 镜像路径 MIRROR_PATHNAMExxx/login# 函数显示绿色成功信息 function success {echo -e \033[1;32m$1\033[0m }# 函数显示绿色成功信息 function info {echo -e \033[33m$1\033[0m }read -p Please enter the packaging version: version success The packaging version you entered is: $version\ninfo build start:\ninfo 1) docker build...\n docker build -f ./deploy/docker/Dockerfile -t $MIRROR_PATHNAME:$version . /dev/nullinfo 2) docker tag...\n docker tag $MIRROR_PATHNAME:$version $WAREHOUSE_DOMAIN/$MIRROR_PATHNAME:$version /dev/nullinfo 3) docker push...\n docker push $WAREHOUSE_DOMAIN/$MIRROR_PATHNAME:$version /dev/nullinfo 4) delete containers...\n docker ps -a | grep $WAREHOUSE_DOMAIN/$MIRROR_PATHNAME* | awk {print $1} | xargs docker rm -f /dev/nullinfo 5) remove images...\n docker rmi -f $(docker images $WAREHOUSE_DOMAIN/$MIRROR_PATHNAME* -q | sort | uniq) /dev/nullinfo build done!exit Dockfile # 第一阶段构建应用程序 FROM golang:1.17.6-alpine AS builder # 设置维护者信息 LABEL maintainerxxxxxx.com # 设置工作目录 ENV WORKDIR /app # 关闭CGO以减少构建过程中的依赖和体积 ENV CGO_ENABLED 0 # 设置目标操作系统和架构 ENV GOOS linux ENV GOARCH amd64 ENV GOPROXY https://goproxy.cn,direct # 切换到工作目录 WORKDIR $WORKDIR # 拷贝当前目录下的所有文件到工作目录 COPY . . # 下载项目依赖包 RUN go mod download # 查看工作目录中的文件列表可以用来检查文件是否正确拷贝 RUN ls -al # 编译项目-ldflags参数用于优化生成的二进制文件大小和性能 RUN go build -ldflags-s -w -o $WORKDIR/main ./main.go # 第二阶段构建Docker镜像 FROM loads/alpine:3.8# 设置维护者信息 LABEL maintainerxxxxxx.com # 设置工作目录和时区 ENV WORKDIR /app ENV TZ Asia/Shanghai # 将第一阶段构建的应用程序复制到当前镜像的工作目录 COPY --frombuilder /app/main $WORKDIR/main RUN chmod x $WORKDIR/main# 切换到工作目录 WORKDIR $WORKDIR # 设置容器启动时的命令为应用程序的可执行文件路径 CMD [./main] 执行结果 结语 通过编写Shell脚本我们可以大大简化Golang项目的打包和部署流程提升工作效率。当然实际生产环境中可能还需要考虑更多因素如版本管理、依赖处理、日志收集等但以上步骤已经构成了一个基础的自动化部署框架。随着需求的增加你可以在这个基础上不断扩展和完善你的部署脚本使其更加符合你的业务需求。
http://www.zqtcl.cn/news/214177/

相关文章:

  • 锡山区住房和城乡建设局网站免费ppt模板下载简约
  • 建设银行 杭州招聘网站建设工程有限公司是干什么的
  • 做网站必须购买空间吗?3点新闻发布
  • 济南集团网站建设流程东莞做网站公司首选
  • 有需要做网站推广找我网站怎么 备案
  • 怎么把网站放到服务器上站长工具seo综合查询外部链接数量
  • 做网站上市的公司开一家公司最低注册资金
  • 仙居谁认识做网站的有哪些好的网站建设
  • 互动广告机网站建设怀集网站建设
  • 好的 做网站的软件公司pinterest app下载
  • 公司网站报价邯郸软件定制
  • 产品毕业设计代做网站资料库网站源码
  • 交易类网站做支付宝功能建设银行网站收款怎么打明细
  • 广州找人做网站做网站网关备案
  • 网站的布局方式有哪些内容免费ppt模板下载公众号
  • 色91Av做爰网站获胜者网站建设
  • 企业做网站要多少钱简单网页设计模板网站
  • 住宅城乡建设部门户网站seo主管的seo优化方案
  • 商洛做网站电话北京做网站比较大的公司
  • 某俄文网站电脑做网站服务器
  • 广州网站建设开发团队江苏省建设招标网站
  • 南昌建设工程质量监督网站wordpress菜单登录
  • 网站设计贵不贵网站seo设置是什么
  • 不属于企业网站建设基本标准的是南通网站建设知识
  • 玉树州wap网站建设公司做试玩网站
  • 商城网站怎么建保定网络营销网站建设
  • 检索类的网站建设公司的网站建设规划书
  • 百度做网站需要交钱吗保定网站建设平台分析
  • 张家界建设局网站电话优化关键词排名公司
  • 宁夏网站建设一条龙网站建设中的图片及视频要求