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

网站怎么做关键词研究如何在自己的服务器上做网站

网站怎么做关键词研究,如何在自己的服务器上做网站,华为网络工程师认证培训,房屋建筑设计师哪里找微服务CI/CD实践系列#xff1a; 微服务CI/CD实践#xff08;一#xff09;环境准备及虚拟机创建 微服务CI/CD实践#xff08;二#xff09;服务器先决准备 微服务CI/CD实践#xff08;三#xff09;Jenkins部署及环境配置 微服务CI/CD实践#xff08;四#xff09;…微服务CI/CD实践系列   微服务CI/CD实践一环境准备及虚拟机创建 微服务CI/CD实践二服务器先决准备 微服务CI/CD实践三Jenkins部署及环境配置 微服务CI/CD实践四Jenkins Dokcer 部署微服务前端VUE项目 微服务CI/CD实践五Jenkins Dokcer 部署微服务后端项目 文章目录 一、先决条件1.1 服务器先决条件1.2 项目配置1.2.1 Dockerfile1.2.2 pom配置1.2.3 部署脚本 二、Jenkins构建部署2.1 创建项目2.2 配置项目基本信息2.3 定义 Pipeline script2.4 构建部署项目 三、其他方式构建部署后端服务使用Maven构建Docker镜像 后端微服务项目是基于JDK1.8 SpringCloudAlibaba框架开发我们通过Jenkins流水线作业将后端工程打包成Docker镜像的方式进行部署。构建部署流程如下 拉取代码jenkins服务器maven编译代码使用dockerfile构建镜像并打包镜像上传镜像包执行sh 一、先决条件 1.1 服务器先决条件 Jenkins 和 server服务器先决条件参考微服务CI/CD实践二服务器先决准备 和 微服务CI/CD实践四Jenkins部署及环境配置 1.2 项目配置 后端项目基于maven Dockerfile 构建镜像。 1.2.1 Dockerfile # docker image deploy FROM openjdk:8-jdk-alpine COPY /uaa-center-server/target/app.jar /app.jarENTRYPOINT [java, -jar, -Dspring.profiles.activedev,/app.jar]上述配置仅是一个最基本Java工程镜像构建脚本如果需要集成其他插件需要对应修改脚本 以下示例展示了如何通过Dockerfile集成arshs 和 skywalking FROM openjdk:8-jdk-alpine COPY /uaa-center-server/target/app.jar /app.jar # copy arthas COPY ‐‐fromhengyunabc/arthas:latest /opt/arthas /opt/arthas # copy skywalking COPY /uaa-center-server/agent /usr/local/agent # 这里可以传递skywalking‐agent 配置 ENTRYPOINT [ sh, ‐c, java ‐javaagent:/usr/local/agent/skywalking‐agent.jar ‐ Dskywalking.agent.service_nameyourappname ‐ Dskywalking.collector.backend_servicexx.xx.xx.xx:11800 ‐Dspring.profiles.activedev ‐ jar /app.jar ]可以在ENTRYPOINT 端点指定相关agent配置也可以在docker run执行脚本中指定。 1.2.2 pom配置 后端工程pom添加maven打包依赖 buildfinalNameapp/finalNamepluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdversion${spring-boot-dependencies.version}/versionexecutionsexecutiongoalsgoalrepackage/goal/goals/execution/executions/pluginplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion3.8.1/version !-- 使用与你的 Maven 版本兼容的版本 --configurationsource1.8/sourcetarget1.8/targetannotationProcessorPathspathgroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion1.18.24/version !-- 使用与你的 Maven 版本兼容的版本 --/pathpathgroupIdorg.mapstruct/groupIdartifactIdmapstruct-processor/artifactIdversion${org.mapstruct.version}/version/path/annotationProcessorPathscompilerArgsarg-Aprojectlombok.classpath${project.build.outputDirectory}/arg/compilerArgs/configuration/plugin/plugins/build后端工程Dockerfile目录结构如下 Dockerfile 和 具体的server工程在同级目录 1.2.3 部署脚本 后端服务和前端服务部署脚本基本一致也是通过传入动态参数方式执行sh脚本sh脚本执行步骤解释参考 微服务CI/CD实践五Jenkins Dokcer 部署微服务前端VUE项目 1.2 项目配置。完整的后端部署脚本如下 #!/usr/bin/env bashecho param validate if [ $# -lt 5 ]; thenecho you must use like this : /usr/docker-sh/publish_project_name.sh container_name image_name version [portal port] [server port] [portal ssl port] [server ssl port] exit ficontainer_name$1 image_name$2 version$3 portal_port$4 server_port$5 if [ $6 ! ]; thenportal_ssl_port$6 fi echo portal_ssl_port $portal_ssl_port if [ $7 ! ]; thenserve_sslr_port$7 fiecho 执行docker ps docker ps if [[ $(docker inspect $container_name 2 /dev/null | grep $container_name) ! ]]; thenecho $container_name 容器存在停止并删除echo docker stop $container_namedocker stop $container_nameecho docker rm $container_namedocker rm $container_name elseecho $container_name 容器不存在 fi # 删除镜像 echo 执行docker images docker images if [[ $(docker images -q $image_name 2 /dev/null) ! ]]; thenecho $image_name 镜像存在删除镜像docker rmi $(docker images -q $image_name 2 /dev/null) --force elseecho $image_name 镜像不存在 fi#bak image echo bak image $image_name BAK_DIR/opt/bak/docker/$image_name/date %Y%m%d mkdir -p $BAK_DIR cp /opt/tmp/$container_name.tar $BAK_DIR/$image_name_date %H%M%S.tarecho docker load $image_name docker load --input /opt/tmp/$container_name.tarecho docker run $image_name # 这里因为服务本身还运行了netty所以需要将netty的端口也做映射如果没有仅需要配置server_port docker run -d -p $portal_port:$server_port -p $portal_ssl_port:$portal_ssl_port --name$container_name --networkmy-network -e TZAsia/Shanghai --restartalways -v ./logs:/usr/local/server-log/uaa-center-server $image_nameecho remove tmp $image_name rm -rf /opt/tmp/$container_name.tarecho Docker Portal is starting,please try to access $container_name conslone url二、Jenkins构建部署 2.1 创建项目 新建一个流水线任务 2.2 配置项目基本信息 创建完成项目点击项目进入项目页面点击左侧菜单》配置进行项目基本配置 step1 项目构建历史存储策略配置 这里存储策略根据自己项目要求进行配置。 step2 配置参数化构建过程 Jenkins List Git Branches插件 构建选择指定git分支点击添加参数选择List Git branchers选项进行Jenkins List Git Branches插件配置 Jenkins List Git Branches插件配置流程如下 配置name配置仓库并选择凭证选择Parameter Type配置Branch Filter 2.3 定义 Pipeline script pipeline {agent anyenvironment { REPOSITORYhttp://192.168.1.101:8929/hka/hkabackgroud/business/uaa-center.gitprojectdiruaa-center-pipelineprojectnameuaa-center-serverapinameuaa-center-api}stages {stage(获取代码) {steps {echo start fetch code from git:${REPOSITORY} ${branch}deleteDir()checkout([$class: GitSCM,branches: [[name: ${branch}]],doGenerateSubmoduleConfigurations: false,extensions: [],userRemoteConfigs: [[credentialsId: 2,url: http://192.168.1.101:8929/hka/hkabackgroud/business/uaa-center.git]]])}}stage(替换) {steps {echo start replacesh cd ${WORKSPACE}/${projectname} sh rm -f target/${projectname}.jar sh mv ${WORKSPACE}/${projectname}/src/main/resources/bootstrap.yml.example ${WORKSPACE}/${projectname}/src/main/resources/bootstrap.yml sh mv ${WORKSPACE}/${projectname}/src/main/resources/bootstrap-dev.yml.example ${WORKSPACE}/${projectname}/src/main/resources/bootstrap-dev.yml }}stage(打包) {steps {echo start buildwithMaven(maven: maven3.8.1) {sh mvn -f ${WORKSPACE}/${apiname}/pom.xml clean deploy -DskipDockerTag -DskipDockerPush sh mvn -f ${WORKSPACE}/${projectname}/pom.xml clean install -DskipDockerTag -DskipDockerPush }}}stage(Delete Old Docker Container) {steps {echo delete docker containersh if [[ $(docker inspect ${projectname} 2 /dev/null | grep ${projectname}) ! ]]; then echo ${projectname} 容器存在停止并删除echo docker stop ${projectname}docker stop ${projectname}echo docker rm ${projectname}docker rm ${projectname}else echo ${projectname} 容器不存在fi}}stage(Delete Old Docker Image) {steps {echo delete docker imagesh if [[ $(docker images -q ${projectname} 2 /dev/null) ! ]]; then echo ${projectname} \镜像存在删除镜像\docker rmi $(docker images -q ${projectname} 2 /dev/null) --forceelse echo ${projectname} \镜像不存在创建镜像\fi}}stage(Build Docker Image) {steps {echo start docker build ${projectname} codesh docker build -t ${projectname} .echo save docker images tarsh docker save -o ${projectname}.tar ${projectname}}}stage(Delete New Docker Image) {steps {echo delete docker imagesh if [[ $(docker images -q ${projectname} 2 /dev/null) ! ]]; then echo ${projectname} \镜像存在删除镜像\docker rmi $(docker images -q ${projectname} 2 /dev/null) --forceelse echo ${projectname} \镜像不存在创建镜像\fi}}stage(Upload img tar) {steps {sshPublisher(publishers: [sshPublisherDesc(configName: 103,transfers: [sshTransfer(cleanRemote: false,excludes: ,makeEmptyDirs: false,noDefaultExcludes: false,patternSeparator: [, ],remoteDirectory: ,remoteDirectorySDF: false,removePrefix: ,sourceFiles: uaa-center-server.tar)],usePromotionTimestamp: false,useWorkspaceInPromotion: false,verbose: false)])}}stage(Execute Command sh) {steps {sshPublisher(publishers: [sshPublisherDesc(configName: 103,transfers: [sshTransfer(execCommand: /usr/docker-sh/publish_uaa-center-server.sh uaa-center-server uaa-center-server latest 10005 10005 9000 9000,execTimeout: 300000)],usePromotionTimestamp: false,useWorkspaceInPromotion: false,verbose: false)])}}stage(Publish Results) {steps {echo End Publish ${projectname} }}} } 2.4 构建部署项目 回到项目页面点击参数化构建选择用于构建的分支点击Build执行构建任务。 当jenkins 流水线执行完成后可到对应Server服务器验证服务是否部署成功 [rootk8s-rancher-node02 ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5d65d80b5350 uaa-center-server java -jar -Dspring.… 2 days ago Up 31 hours 0.0.0.0:9000-9000/tcp, :::9000-9000/tcp, 0.0.0.0:10005-10005/tcp, :::10005-10005/tcp uaa-center-server三、其他方式构建部署后端服务 上述基于Jenkins流水线方式部署流程稍显复杂优势是可以灵活配置构建步骤特别是对于多环境多服务器的支持更加具有优势比如通过Jenkins实现本地自动化部署并将镜像推送到AWS云原生平台的测试和生产环境仅需要添加相应流水线流程即可。 stage(push image to aws ecr) {steps {echo start pushscript {docker.withRegistry(https://xxxx.dkr.ecr.cn-north-1.amazonaws.com.cn, ecr:cn-north-1:aws_ecr) {docker.image(${projectname}).push(${BUILD_NUMBER})}}}}stage(push image to aws ecr us-west-2) {steps {echo start pushscript {docker.withRegistry(https://xxxxx.dkr.ecr.us-west-2.amazonaws.com, ecr:us-west-2:aws_us_west_2_ecr) {docker.image(${projectname}).push(${BUILD_NUMBER})}}}}如果仅在单环境部署可以考虑使用Maven构建Docker镜像方式构建镜像该方式流程简单。 使用Maven构建Docker镜像 step1 应用pom文件添加maven-docker-plugin配置 plugingroupIdcom.spotify/groupIdartifactIddocker-maven-plugin/artifactIdversion1.1.0/versionexecutionsexecutionidbuild-image/idphasepackage/phasegoalsgoalbuild/goal/goals/execution/executionsconfigurationimageName${project.artifactId}:${project.version}/imageNamedockerHosthttp://registry服务器地址:2375/dockerHostbaseImageopenjdk:8-jdk-alpine/baseImageentryPoint[java, -jar,/${project.build.finalName}.jar]/entryPointresourcesresourcetargetPath//targetPathdirectory${project.build.directory}/directoryinclude${project.build.finalName}.jar/include/resource/resources/configuration /plugin配置说明: executions.execution.phase:此处配置了在maven打包应用时构建docker镜像 imageName用于指定镜像名称 p r o j e c t . a r t i f a c t I d 为镜像名称 {project.artifactId}为镜像名称 project.artifactId为镜像名称{project.version}为仓库版本 dockerHost打包后上传到的docker服务器地址 baseImage该应用所依赖的基础镜像此处为java entryPointdocker容器启动时执行的命令 resources.resource.targetPath将打包后的资源文件复制到该目录 resources.resource.directory需要复制的文件所在目录maven打包的应用jar包保存在target目录下面 resources.resource.include需要复制的文件打包好的应用jar包。 step2 Jenkins创建项目 Jenkins—》添加Items 根据自己所有选择合适项目类型这里我们选择Freestyle project以便我们自定义构建流程。也可以从其他项目copy配置。 step3 配置代码源 说明 Repository URL:远程代码仓库地址 Credentials凭据可选择已添加的全局凭据或者在此页面自定义全局凭据 指定分支为空时代表any:指定项目构建分支 构建触发器:可自定义构建触发如钩子函数、定时任务等 step4 构建流程配置 这一步是因为项目的配置管理策略有关本地配置均不提交到服务器如何没有采用该策略可以忽略 点击增加构建步骤选择执行shell步骤 构建步骤5 使用maven打包构建镜像并推送到server 点击增加构建步骤选择顶层Maven目标步骤 构建步骤6 远程执行shell部署镜像 点击增加构建步骤选择远程执行shell步骤 使用maven-docker-plugin方式构建后端项目流程简单且Jenkins服务器不需要安装额外的Docker也不需要编写Dokcerfile文件劣势是无法灵活管理构建步骤。
http://www.w-s-a.com/news/238486/

相关文章:

  • 营销型网站源码下载青岛做网站建设的公司哪家好
  • 迁西网站定制怎么制作网址内容
  • 深圳装饰公司网站宁波网站建设哪里有
  • 建站网站破解版怎么看自己的网站是用什么做的
  • 做微商那个网站好织梦模板更新网站
  • 网站注册表单怎么做手机做网站需要多少天
  • 书店商城网站html模板下载企业网站建设方案书范文
  • 建设网站是普通办公吗快速排名seo软件
  • 大型外贸网站建设网站建设图片尺寸要求
  • 网站建设可信赖北京网站开发月薪
  • 专门做lolh的网站wordpress 模版 cho's
  • 网上做设计兼职哪个网站好点网站开发毕业周记
  • 自学商城网站建设无为网页定制
  • wordpress全站cdn手机网站调用分享
  • 淄博做网站58同城wordpress微信号订阅
  • 不同的网站 做301公共资源交易中心是干嘛的
  • 36 氪 网站如何优化怎么优化自己的网站
  • 网站兼容问题湖北网站建设优化
  • 2018新网站做外链app制作的网站
  • 外贸网站建设怎么建设pc网站做移动端适配
  • 做经销找厂家好的网站个人备案网站可以做电影站吗
  • 网站搭建怎么做网站建设培训哪家好
  • 学做美食的视频网站企业网站备案密码怎么找回
  • 销售产品做单页还是网站seo有哪些作用
  • 网站视觉规范南宁网站优化推广
  • 公司起名打分最准的免费网站学设计的学校
  • 用cn作网站行么WordPress网站打不开nginx
  • 顺德龙江网站建设百货商城自助下单网站
  • 门户网站采用较多的模式是wordpress自动搜索缩略图
  • 深圳设计功能网站做网站推广怎么做