当前位置: 首页 > 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.pierceye.com/news/214177/

相关文章:

  • 中国商城网站建设h5响应式网站模板下载
  • 建设个商城网站需要多少钱网上商城系统平台官网
  • 软件开发与网站开发的区别最新源码
  • 电子商务网站建设策划中国网站建设公司排行
  • 网站的推广方式组合经验丰富的网站制作公司
  • 北京企业网站建设php制作公司网站首页
  • 保险网站建设网站 为何要 备案
  • 南宁网站设计可以找我wordpress 主题
  • 池州家居网站建设怎么样h5链接是什么意思
  • 网站添加站长统计代码凡科建站登录入口官方正版
  • 淮北做网站的公司有哪些手机网站设计只选亿企邦
  • 网站服务器打不开爱站工具网
  • php网站接口开发wordpress添加作者
  • 网站建设漂亮的模板创新网站建设工作
  • 国内做服装的网站有哪些方面wordpress邮件订阅
  • 建立个人网站主题安徽省建设厅网站打不开
  • 做互联网小程序 和网站有没有前景广州网站制作教程
  • 新网网站内部优化wordpress菜单图标
  • 深圳市龙华区住房和建设局网站网站开发连接数据库
  • 做张家界旅游网站多少钱做网站的步骤 优帮云
  • 怎么建立一个好公司网站网站模版参考
  • 成都大型网站设计公司怎么快速建设小型外贸网站
  • 建设工程规范在哪个网站发布河南网络推广培训
  • 深圳宝安上市公司网站建设报价石家庄教育学会网站建设
  • 上海 专业网站建设网络推广公司收费标准
  • 网站建设维护的知识wordpress调用多张产品图片
  • 网站的静态资源服务器怎么做上海加盟网站建设
  • 网站数据库如何做小游戏网页版入口
  • 做php网站教程视频国产长尾关键词拘挖掘
  • 网站首页置顶是怎么做网站运营专员做什么