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

嵌入式软件开发工程师待遇我赢网seo优化网站

嵌入式软件开发工程师待遇,我赢网seo优化网站,威海优化推广,在线制作视频的网站简介 Jpom是一款现代化的开源构建管理系统,专为Java开发的项目设计,提供了在线构建、自动部署、日常运维和项目监控等全面功能。 准备工作 2.1 JPom 安装 先安装JPom,此处选择Docker或docker-compose安装。详见官网Jpom docker-compose安…

简介

Jpom是一款现代化的开源构建管理系统,专为Java开发的项目设计,提供了在线构建、自动部署、日常运维和项目监控等全面功能。

准备工作

2.1 JPom 安装

先安装JPom,此处选择Docker或docker-compose安装。详见官网Jpom docker-compose安装

2.2 仓库创建

登录JPom管理后台,在“在线构建 -- 仓库信息”中,新增一个仓库地址。

2.3 SSH 添加

登录JPom管理后台,在“资产管理 -- SSH管理”,新增一个SSH节点。

如果和JPom Server在同一台服务器上,Host需要写外网IP,不能用127.0.0.1

2.4 Docker 添加

登录JPom管理后台,在“资产管理 -- Docker管理”,新增Docker

注:在新增Docker之前,需先在Docker中进行配置,详见官网Jpom Docker资产 新增&删除。如果只是测试,只需在docker.service文件中添加修改,如下:

docker.service可以通过systemctl status docker查看

在线构建

3.1 构建方式

通过Docker或docker-compose安装的Jpom,在构建时,构建方式只能选择“容器构建”

3.2 基础信息

选择源仓库、分支。JPom Server通过对应的仓库,将仓库中的代码拉取到服务器。

代码拉取后存放在xxx/docker/volumes目录下,可以通过构建的BUILD_ID值,使用

find / -name "${BUILD_ID}" 命令查询具体的目录。其中${BUILD_ID}要使用如下截图的字符串。

构建创建成功后,会生成一个唯一的构建Id,可通过编辑构建中查看。

3.3 构建流程

构建流程的任务是通过3.1选择的构建方式(以Docker为例),结合3.2中拉取的代码,自动打包,生成可执行的 Jar 包。

3.3.1 DSL配置

1)DSL的说明

a)配置需要声明使用具体的 docker 来执行构建相关操作(建议使用服务端所在服务器中的 docker)

b)容器构建会在 docker 中生成相关挂载目录,一般情况不需要人为操作

c)执行构建时会生成一个容器来执行,构建结束后会自动删除对应的容器

简单理解:DSL配置用于配置一个Docker容器,通过该Docker容器,自动将仓库的代码打包生成可执行文件,并通过挂载卷目录方式,将执行信息及可执行文件存放在Docker的宿主机中。而后自动删除Docker容器。

2)配置说明
# 基础镜像 目前支持 ubuntu-latest、ubuntu-git
# 您还可以自定义基础镜像来实现复杂业务
# 本示例仅供参考实际需要您按照仓库情况和构建流程自行配置
runsOn: ubuntu-latest
# 使用哪个 docker 构建,填写 docker 标签 默认查询可用的第一个,如果 tag 查询出多个也选择第一个结果
fromTag: test
# version 需要在对应镜像源中存在
# java 镜像源 https://mirrors.tuna.tsinghua.edu.cn/Adoptium/
# maven 镜像源 https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/
# node 镜像源 https://registry.npmmirror.com/-/binary/node/
# 目前支持的 uses 插件端 java、maven、node、go、python3、gradle 。如果不满足需求,可自行配置插件
steps:- uses: java  # 自动在xxx/docker/volumes/中创建下载对应版本的jdkversion: 8- uses: maven  # 自动在xxx/docker/volumes/中创建下载对应版本的mavenversion: 3.9.4  
#  - uses: go
#    version: 1.17.6
#  - uses: python3
#    version: 3.6.6
# 将容器中的 maven 仓库文件缓存到 docker 卷中,前提条件:需将宿主机的/root/.m2和容器的/root/.m2做映射- uses: cachepath: /root/.m2
# 将此目录缓存到全局(多个构建可以共享此缓存目录)type: global
#  - run: echo "当前目录:" && pwd && echo "进入docker容器,睡眠1000s" && sleep 1000 && "睡眠结束"- run: cd ${JPOM_WORKING_DIR} && mvn clean package -Dmaven.test.skip=true -s /root/.m2/settings.xml
#  - run: echo "当前目录:" && pwd && echo "进入docker容器,睡眠100s" && sleep 1000 && "睡眠结束"
# 宿主机目录和容器目录挂载 /host:/container:ro
binds:
# 指定 settings.xml 文件
#  - /var/lib/docker/volumes/jpom_maven_3.9.4/_data/conf/settings.xml:/root/.m2/settings.xml- /root/.m2/:/root/.m2/
#  - /var/lib/docker/volumes/jpom_maven_3.9.4/_data/config/:/home/maven_config/# 宿主机文件上传到容器 /host:/container:true
#copy:
#  - /var/lib/docker/volumes/jpom_maven_3.9.4/_data/conf/settings.xml:/home/:true
# dirChildrenOnly = true will create /var/data/titi and /var/data/tata dirChildrenOnly = false will create /var/data/root/titi and /var/data/root/tata
# copy:
#  - /Users/user/.m2/settings.xml:/root/.m2/:false
# 给容器新增环境变量
env:NODE_OPTIONS: --max-old-space-size=900
#配置说明:https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerCreate
#hostConfig:
#  CpuShares: 1

以上大部分代码都是官网提供的示例代码,以下重点介绍几点:

a)uses: java

配置Java环境,默认会自动下载对应版本的JDK版本到容器,并通过卷(xxx/docker/volumes/)同步到宿主机。如果没有下载成功,也可以在宿主机中找到对应卷,手动下载。

文件格式如下:

maven等其他环境也一样的处理方式。

b)Maven仓库缓存

maven仓库缓存的目的在于无需每次构建都重新下载依赖包,提升构建的下次构建的速度。

在Docker容器构建环境中,通过Maven下载的依赖包,默认存放在/root/.m2/repository/目录中。

注:此处除了配置path为/root/.m2以外,还需要在binds中,配置宿主机和Docker容器该目录的映射

c)打包命令

cd ${JPOM_WORKING_DIR} && mvn clean package -Dmaven.test.skip=true -s /root/.m2/settings.xml

容器启动时,会自动将从仓库中拉取的源代码映射到容器的${JPOM_WORKING_DIR}目录中。

-s /root/.m2/settings.xml:用于指定maven的配置文件,此处必须指定,且该文件必须在容器中存在。 settings.xml文件可以和源码一起提交到仓库中,也可以通过卷映射,从宿主机中获取。

通过DSL配置的use: maven,自动下载maven,但该maven是从官网下载,对应的仓库都为外网,下载很慢,而且项目中可能有自动创建的仓库,所以此处需重新指定settings.xml文件。可在该settigns.xml中配置国内仓库、jdk版本等信息。

d)卷的映射

通过binds,指定宿主机/root/.m2/和容器/root/.m2/的映射。

注:如果c)中的打包命令指定的settings.xml文件为/root/.m2/settings.xml,则需要将该文件先放在宿主机的/root/.m2目录中。

3.3.2 产物目录

指定打包后的可执行文件的目录。如SpringBoot项目的target/xxx.jar

3.4 发布操作

发布操作用于接送3.3中构建后打包生成的可执行文件,执行服务的启动等操作。

1)选择发布的SSH

指定3.3中构建后打包生成的可执行文件要上传到哪一台服务器。

2)发布目录

a)home:示例中的home目录是在添加SSH管理时指定的文件目录。

b)test:示例中的test目录是3.3中构建后打包生成的可执行文件自动上传到SSH的指定目录,本例为 /home/test/ 目录

c)发布前命令

该命令在SSH对应的服务器的/root目录中开始执行

d)发布后命令

该命令同“发布前命令”的环境一样,也在SSH对应的服务器的/root目录中开始执行。

在此示例中,需要先进入/home/test目录,可执行的jar包在该目录中。然后执行 ./start.sh 脚本文件。

start.sh 脚本文件,可以根据自己项目的实际信息进行填写。

本例使用docker-compose创建docker容器,执行mytest服务。

start.sh脚本文件如下:

#!/bin/sh
echo "脚本执行"
# 使用 $() 进行命令替换,并将输出赋值给 CONTAINER_ID 变量
# 查找mytest镜像当前的容器id
containerId=$(docker ps -a | grep mytest | awk '{print $1}')
echo $containerId
if [ "$containerId" != "" ]; thenecho "容器id存在"docker stop $containerId && docker rm $containerIdecho "停止并删除容器成功"
elseecho "容器id不存在"
fi
echo "启动容器"
docker-compose up -d
echo "容器启动结束"

结尾

以上为本篇分析的全部内容。

关于本篇内容你有什么自己的想法或独到见解,欢迎在评论区一起交流探讨下吧。

http://www.dtcms.com/wzjs/487591.html

相关文章:

  • 网站广告是文化事业建设费百度网址大全 官网首页
  • 室内设计学校大专兰州网站seo
  • 宁波做网站费用江门关键词排名优化
  • 7k7k小游戏大全seo推广百度百科
  • 上海房产交易网站138ip查询网域名解析
  • 柳州做网站的企业如何快速搭建网站
  • esp8266做网站网络营销师证书怎么考
  • 网站怎么做才有收录青岛百度网站排名优化
  • 苏州网站建设2万起百度统计代码
  • 专做品牌的网站百度官方网站
  • 怎么修改自己的网站seo关键词的优化技巧
  • 门户网站建站注意事项贵州萝岗seo整站优化
  • 南城网站建设公司方案有没有推广app的平台
  • 网站建设在哪里做百度推广
  • 网站做多大的宽高百度网站如何优化排名
  • 布吉网站的建设免费建设个人网站
  • 网站网站百度我的订单
  • weaver网页制作seo属于什么职业部门
  • 南京做网站南京乐识最优北京做网页的公司
  • 天津做网站的费用怎么弄属于自己的网站
  • 天津企业如何建网站推广产品吸引人的句子
  • 建立公司网站需要什么新媒体营销推广方案
  • 上海网站设计公司排行榜关键词排名监控
  • 做免费小说网站怎样赚钱seo外包 靠谱
  • 如何做网站规范百度站长
  • 北京公司网站建设服务seo排名优化关键词
  • 网站不备案可以做微信小程序么通过qq群可以进行友情链接交换
  • 射洪县住房和城乡建设局网站百度文库登录入口
  • 平台搭建图片seo排名方案
  • 网站平台做推广方案设计上海百度seo公司