第四章:安装Docker,安装配置gitlab私有仓库以及jenkins自动化部署(图文)

Linux系统:第十四章:安装Docker,java面试编译原理 systemctl restart docker #centos开放端口宿主机访问 firewall-cmd --add-port=9004/tcp --permanent firewall-cmd --reload #查询端口是否开启命令 firewall-cmd --query-port=9004/tcp #除此之外还可以开机自启动,将firewalld起起来即可,并且允许其自启动 systemctl start firewalld systemctl enable firewalld #如果出现Fai 阅读详情


一、docker安装

说明:以下为国内云服务器(阿里云,腾讯云)以及自行安装的CentOS7为环境

#准备工作,查看内核信息:

uname -r

#移除yum.pid文件

rm -f /var/run/yum.pid

#更新yum源

yum update

centos yum安装使用时提示 cannot find a valid baseurl for repo:base/7/x86_64 的解决方法
https://blog.youkuaiyun.com/weixin_36741151/article/details/106574157

#出现[Errno -1] 软件包与预期下载的不符。 建议:运行 yum --enablerepo=updates clean metadata正在尝试其它镜像。使用以下命令

yum --enablerepo=updates clean metadata

#编辑文件改成Centos7

cd /etc/yum.repos.d
vi CentOS-Base.repo

#将文件中$releasever全部改成7

:%s/$releasever/7/g 

#清除和缓存

yum clean all && yum makecache 

#卸载旧版本

sudo yum remove docker \
				docker-client \
				docker-client-latest \
				docker-common \
				docker-latest \
				docker-latest-logrotate \
				docker-logrotate \
				docker-engine \
				docker-selinux \
				docker-ce

#卸载后将保留/var/lib/docker的内容(镜像、容器、存储卷和网络等)。

rm -rf /var/lib/docker

#下载之前查看网络环境在出口是否封了相应端口

ping baidu.com

#安装前可查看device-mapper-persistent-data和lvm2是否已经安装,如果安装了可以跳过这个步骤

rpm -qa|grep device-mapper-persistent-data
rpm -qa|grep lvm2

#安装依赖软件包

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

#安装yum工具包

sudo yum -y install yum-utils

#设置yum源
如果服务器在国外可以使用官方的

sudo yum-config-manager \
		--add-repo \
		https://download.docker.com/linux/centos/docker-ce.repo

#如果服务器在国内则使用阿里云的

sudo yum-config-manager \
		--add-repo \
		http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#更新yum软件包索引

sudo yum makecache fast

#安装Docker
安装最新版本docker-ce

sudo yum install -y docker-ce

#安装指定版本docker-ce可使用以下命令查看

sudo yum list docker-ce.x86_64  --showduplicates | sort -r

#安装特定版本

sudo yum install docker-ce-18.09.1 docker-ce-cli-18.09.1 containerd.io

#安装完成之后可以使用命令查看

docker version

结果:出现Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
#重启docker

systemctl start docker

#查看状态

systemctl status docker

#再次查看版本

docker version

结果:

Client: Docker Engine - Community
Version: 20.10.9
API version: 1.41
Go version: go1.16.8
Git commit: c2ea9bc
Built: Mon Oct 4 16:08:25 2021
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.9
API version: 1.41 (minimum version 1.12)
Go version: go1.16.8
Git commit: 79ea9d3
Built: Mon Oct 4 16:06:48 2021
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.4.11
GitCommit: 5b46e404f6b9f661a205e28d59c982d3634148f8
runc:
Version: 1.0.2
GitCommit: v1.0.2-0-g52b36a2
docker-init:
Version: 0.19.0
GitCommit: de40ad0

#通知systemd重载此配置文件

systemctl daemon-reload

#docker开机自启设置

systemctl enable docker.service   

#出现Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.指定root用户添加到用户组,然后重试开机自启动设置

usermod -aG docker root

#重载配置,重启docker服务

systemctl daemon-reload
systemctl restart docker

说明:以下为AWS服务器的环境,AWS服务器则执行以下命令进行docker安装

#更新yum源

sudo yum update -y

#安装docker

sudo amazon-linux-extras install docker

#启动docker

sudo service docker start

二、配置docker对外端口

#安装好docker之后还需要对外暴露接口

 vim /usr/lib/systemd/system/docker.service

找到 ExecStart=/usr/bin/dockerd在后面添加tcp://0.0.0.0:端口

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:9004 -H fd://

重载配置,重启docker

 systemctl daemon-reload
 systemctl restart docker

#centos开放端口宿主机访问

firewall-cmd --add-port=9004/tcp --permanent
firewall-cmd --reload

#查询端口是否开启命令

firewall-cmd --query-port=9004/tcp

#除此之外还可以开机自启动,将firewalld起起来即可,并且允许其自启动

systemctl start firewalld 
systemctl enable firewalld

#如果出现Failed to start firewalld.service: Unit is masked.错误则执行以下命令

systemctl unmask firewalld

#浏览器访问,查看docker版本信息

 http://xx.xx.xx.xx:9004/version

#如果无法访问,重启服务器查看端口

telnet localhost 9004

#如果不小心删除了/var/lib/docker导致后面拉取镜像时报错open /var/lib/docker/tmp/GetImageBlob974299692: no such file or directory,不用改什么操作,重启docker即可

systemctl daemon-reload
systemctl restart docker

三、安装配置gitlab

#gitlab-ce为稳定版本,后面不填写版本则默认pull最新latest版本

docker pull gitlab/gitlab-ce

#创建gitlab日志,数据,配置的存放路径,通常会在构建容器的时间,会把配置 (etc) 、 日志 (log) 、数据 (data) 放到容器外面,方便后期数据迁移或者修改配置

sudo mkdir -p /docker/gitlab/config   /docker/gitlab/logs   /docker/gitlab/data

#构建容器

sudo docker run --detach \
--hostname  gitlab \
--publish 8011:443  \
--publish  8012:8012  \
--publish  8013:22 \
--privileged=true  \
--name gitlab \
--restart always \
--volume /docker/gitlab/config:/etc/gitlab \
--volume /docker/gitlab/logs:/var/log/gitlab \
--volume /docker/gitlab/data:/var/opt/gitlab \
--volume  /docker/gitlab/logs/reconfigure:/var/log/gitlab/reconfigure \
gitlab/gitlab-ce:latest

#添加配置

sudo vi /docker/gitlab/config/gitlab.rb

#添加下面3行

#配置http协议所使用的访问地址,不加端口号默认为80
external_url 'http://xx.xx.xxx.xxx:8012'
#配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = 'xx.xx.xxx.xxx'
#此端口是run时22端口映射的8013端口
gitlab_rails['gitlab_shell_ssh_port'] = 8013
#保存推出
:wq

#看个人需要,一般而已都会限制内存,也可以在docker启动的时候配置,命令为-m 4G

docker update --memory 4096m --memory-swap -1 gitlab

#重启gitlab

docker restart gitlab

#更新授权

sudo docker exec -it gitlab update-permissions

#进入gitlab容器

docker exec -it gitlab bash 

#重新载入配置文件,并开启

gitlab-ctl reconfigure
gitlab-ctl start

#查看密码

gitlab-rails console production

#进入gitlab控制台

gitlab-rails console -e production

#获得用户数据,修改用户密码

user = User.where(id: 1).first
user.password='2YkDixw6xJiD/68kCsAZBu9W9ZhGdRlT0YykDYiOvOAE=1'
user.password_confirmation='2YkDixw6xJiD/68kCsAZBu9W9ZhGdRlT0YykDYiOvOAE=1'
user.save!
quit

#重启gitlab需要等待一段时间才能访问,否则会出现502,如果出现502,还有可能是内存不够的原因,建议查看docker容器的gitlab日志

docker restart gitlab

四、安装配置jekins

一、准备工作


#上传jdk到自定义目录,这里提供jdk1.8的linux版本,从官网拉下来的

链接:https://pan.baidu.com/s/1nAVgmke9RbF8MnXo33S72Q
提取码:mvsq

#查看版本

java -version

#上传maven到自定义目录,这里提供maven3.8.3的linux版本,从官网拉下来的
链接:https://pan.baidu.com/s/1rC4NsMX5i0669_ONJV3MJA
提取码:ek1p

#查看版本

mvn -v

#关于git其实可以使用默认的git,进入到容器中通过以下命令进行查看git版本

git --version

#当前也可以自行安装git,在docker容器启动的时候配置映射路径,并且在/etc/profile的path路径中添加git安装路径即可,可通过以下命令查看git安装路径

which git

#需要注意的是docker容器每次重新启动,会将容器内部生成的ssh key移除掉,所以我们可以通过映射路径或者复制宿主机的ssh key到容器内部,也可以重新生成然后去到gitlab的ssh key配置。下面的邮箱为你github、gitee或者gitlab登录的邮箱,执行命令之后,连续三次回车即可生成,生成git的ssh key命令:

ssh-keygen -t rsa -C "java_wxid@aliyun.com"

查询生成的ssh key的路径:

cd ~/.ssh

#外部配置的jdk和maven需要映射到jenkins容器,所以相关的配置也需要映射进去,所以需要提前在宿主机配置

vim /etc/profile

#在最后一行添加java环境变量和maven环境变量

#java环境配置
export JAVA_HOME=/opt/java/jdk
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=./:JAVA_HOME/lib:$JRE_HOME/lib
#maven环境配置
export M2_HOME=/opt/java/maven
#git环境配置
export GIT_HOME=/opt/java/git
#path
export PATH=/bin:/usr/bin:/sbin:/usr/sbin:$JAVA_HOME/bin:$M2_HOME/bin:$GIT_HOME/bin:$PATH

#立即重载配置

source /etc/profile

#查看版本信息

mvn -v

二、下载安装配置Jenkins

#下载Jenkins的Docker镜像

docker pull jenkins/jenkins:lts

#创建jenkins工作目录的存放路径

sudo mkdir -p /docker/jenkins/data

#在Docker容器中运行Jenkins

docker run -p 8014:8080 -p 8015:5000 --name jenkins -m 2G \
-u root \
--restart always \
-v /docker/jenkins/data:/var/jenkins_home \
-v /etc/localtime:/etc/localtime  \
-v /usr/local/src/apache-maven-3.8.3:/opt/java/maven \
-v /usr/local/src/jdk1.8.0_301:/opt/java/jdk \
-v /etc/profile:/etc/profile \
-v /root/.ssh/id_rsa:/root/.ssh/id_rsa \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /bin/docker:/usr/bin/docker \
-d jenkins/jenkins:lts

#暂停jenkins

docker stop jenkins

#看个人需要,一般而已都会限制内存,可以在docker启动命令中配置,配置命令为-m 2G

docker update --memory 2048m --memory-swap -1 jenkins

#开启jenkins

docker start jenkins

#进入jenkins容器

docker exec -u 0 -it jenkins /bin/bash

#立即重载配置

source /etc/profile

#查看root密码

cat /var/jenkins_home/secrets/initialAdminPassword

#如果提示cat: /var/jenkins_home/secrets/initialAdminPassword: No such file or directory通过查找文件的方式查看密码

find / -name config.xml

一般会出现:
/var/jenkins_home/users/root_9685925808796613467/config.xml
/var/jenkins_home/config.xml
选择用户名相关的文件:

cat /var/jenkins_home/users/root_9685925808796613467/config.xml

找到passwordHash标签:
#jbcrypt:$2a 10 10 10yB8omAzzWpk1oNToWQPIWewpqBKbhJGUU5UDd470yJCN3HVXqCDc6
密码就在#jbcrypt:后面,即

$2a$10$yB8omAzzWpk1oNToWQPIWewpqBKbhJGUU5UDd470yJCN3HVXqCDc6

我们可以改成:

$2a$10$DdaWzN64JgUtLdvxWIflcuQu2fgrrMSAMabF5TSrGK5nXitqK9ZMS

即密码:111111
或者

#jbcrypt:$2a$10$MiIVR0rr/UhQBqT.bBq0QehTiQVqgNpUGyWW2nJObaVAM/2xSQdSq

即密码:123456
使用root用户登录即可

上面那串如何生成的呢?

Jenkins采用Java加密工具jBCrypt,所以我们在生成密码的时候需要添加相关的jar包。

<dependency>
    <groupId>org.mindrot</groupId>
    <artifactId>jbcrypt</artifactId>
    <version>0.4</version>
</dependency>
    // 加密
    String admin = BCrypt.hashpw("admin", BCrypt.gensalt());
    System.out.println("加密:"+admin);

    // 解密
    if(BCrypt.checkpw("admin",admin)){
        System.out.println("is match");
    } else {
        System.out.println("is not match");
    }

#如果启动容器的时候未设置开机自启动,也可以通过以下命令配置docker的容器开机自启动:docker update --restart=always 镜像ID

docker update --restart=always e39a959d7bff

#重启jenkins

docker restart jenkins

#如果出现jenkins实例已离线的情况,访问以下链接

http://ip:port/pluginManager/advanced

在Update Site下面替换以下链接

http://updates.jenkins.io/current/update-center.json

五、jenkins主要的一些配置

在这里插入图片描述#系统配置中配置jdk,maven路径
在这里插入图片描述#全局工具配置,配置jdk,maven,git路径和上面的路径要保持一致
在这里插入图片描述在这里插入图片描述在这里插入图片描述#凭据配置,有些页面无法出来页面,可以通过http://ip:port/credentials/进行访问
在这里插入图片描述在这里插入图片描述在这里插入图片描述#插件看个人需要
在这里插入图片描述#配置时间,脚本命令行中执行
在这里插入图片描述
点击进入脚本命令行将以下命令运行即可。

system.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai')

六、项目配置

#创建项目
在这里插入图片描述

在这里插入图片描述#配置项目
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
#编写shell脚本

#!/bin/bash

# 制定打包模块
arr=(community-starters/community-xxx-starter:8081)
#加前缀
suffix="-"${BUILD_ENV}
#自定义网络
ip_param=''

echo "当前环境"${BUILD_ENV}
#如果执行dev环境,走以下流程
if [ ${BUILD_ENV} == "dev" ];then
# 如果是在本机上安装就使用内网ip,这样速度会快很多,内网ip查询:ifconfig -a
    echo 'export DOCKER_HOST="tcp://xxx.17.0.1:8010"'
    export DOCKER_HOST="tcp://xxx.17.0.1:8010"
    #通过命令docker network create --driver bridge --subnet=xxx.30.0.0/16 common-network创建自定义网段,docker network inspect common-network进行查看,配置的时候,不要以0结尾,如以下配置即可:
    ip_param='--ip xxx.30.0.2'
fi

# for 遍历
for mp in ${arr[*]}
do
	#截取字符串获得module名称和端口
	path=${mp%:*}
	module=${path#*/}
	#arr中配置了端口:8081    
	port=${mp#*:}
	#arr中配置了,container_name=community-starters/community-xxx-starter-dev
	container_name=$module$suffix
	#arr中配置了,image_name=community-starters/community-xxx-starter-dev
	image_name=$module$suffix
    
    echo "开始构建: "$container_name":"$port
    CID=$(docker ps -a | grep "$container_name")
    if [ "$CID" != "" ];then
            echo "删除现有容器"
            docker stop $container_name
            docker rm $container_name
    fi
    
    echo "移除镜像" : $image_name
    docker rmi $image_name
    cd $module
    echo "当前路径" :$(pwd)   
    echo "构建容器": $container_name
    docker build -t $container_name .
    echo "启动容器" : $container_name
    docker run --name $container_name --restart=always -d -p 8081:8081 -p 8082:8082-p 8083:8083 -e TZ=Asia/Bangkok -v /root/fragant/logs:/root/logs:z -v /etc/localtime:/etc/localtime:z -e SPRING_PROFILES_ACTIVE=qa -m 2G $image_name
    echo "连接容器网络" : $ip_param $container_name
    docker network connect $ip_param common-network $container_name
    echo "执行完成"
    
done

内网ip查询
在这里插入图片描述#项目结构
在这里插入图片描述#编写Dockerfile

FROM openjdk:8-alpine
MAINTAINER community-xx-starter

ADD target/community-xx-starter.jar /community-xx-starter.jar

EXPOSE 8081

ENTRYPOINT ["sh","-c","java -jar -Dspring.profiles.active=qa /community-xx-starter.jar"]

进到服务器检出项目的目录,这个时候项目检出并没有打包成jar包,需要手动打包,命令如下:

mvn clean install

如果不成功的话可以尝试使用绝对路径进行调整,例如:

/opt/java/maven/bin/mvn clean install

打包jar包成功之后可以进行自动化部署了
在这里插入图片描述
说明:在弄CI流程的时候可能会出现各种问题,比如脚本执行卡住,这个时候可以将脚本中的命令一条条拿到服务器上面执行,排除命令的错误性。比如误删了某个文件,可以进行手动恢复,可参考:Linux系统:第十三章:centos误删文件如何恢复文件数据。比如项目部署成功无法访问,排查项目是否成功运行,对日志进行排查排除项目启动错误导致的无法访问,对网络进行排查排查安全出口和入口等问题。如果觉得jenkins配置太过麻烦,可参考gitlab的CI:Linux系统:第十五章:gitlab集成CI。

博主的心理话:这里还是要吐槽一下,这几天一直在弄二套CI流程(gitlab的ci和jenkins),踩坑无数,目前网络上面太多相同的文章了,搜索出来一页至少超过一半的文章,文章内容一模一样,剩下的就是排版乱的很,看都看不下去的那种,导致找到的解决方法的时间大大延长,希望未来这种环境能够有所改善。

七、jekins迁移到另一台服务器上

#首先本服务器上面的jenkins运行正常,另一台服务器的jenkins也运行正常,需要知道二台服务器上面的安装目录

#找到jenkins_home目录

find / -name jenkins_home

#解压

sudo tar czvf jenkins.tar.gz *

#复制压缩包到新服务器上面去,-i "qt_dev_cert.pem"表示访问目标服务器需要携带私钥,qt_dev_cert.pem表示当前目录下的私钥文件,root@xx.xx.xx.xx 表示root用户,xx.xx.xx.xx表示目标服务器的ip,/var/jenkins_home表示复制到那个目录下面。如果是密码登录则换成-p 密码即可。

scp -p "password" jenkins.tar.gz  root@xx.xx.xx.xx:/var/jenkins_home
------------------------------------------------------------------------------------
scp -i "qt_dev_cert.pem" jenkins.tar.gz  root@xx.xx.xx.xx:/var/jenkins_home

#去另一台新服务器解压

tar zxf jenkins.tar.gz

#将解压的文件复制到新服务器的jenkins_home目录里面即可

cp /var/jenkins_home /home/jenkins_home

总结

以上就是今天要讲的内容,本文介绍了安装Docker,下载安装配置gitlab以及jenkins,图文讲解CI流程。

gitlab+Jenkins自动化搭建部署 查看Jenkins启动状态是这种时候,表示Jenkins正在启动中,比较慢。私钥id_rsa 公钥 id_rsa.pub 配置在gitlab里。选择下面地址复制到URL下 添加国内插件地址。然后我们的项目构建成功在Jenkins的。华为云下载稳定版或者阿里云下载都可以。添加如下的,然后重启Jenkins。1、添加个项目描述,选择git构建。安装完插件重启Jenkins。2、源码管理URL地址添加。如果出现以下错误的话。......... 阅读详情

相关推荐

项目打包和自动化部署

一. 项目部署和DevOps 1.1. 传统的开发模式 在传统的开发模式中,开发的整个过程是按部就班就行: 但是这种模式存在很大的弊端: 工作的不协调:开发人员在开发阶段,测试和运维人员其实是处于等待的状态。等到测试阶段,开发人员等待测试反馈bug,也会处于等待状态。 线上bug的隐患:项目准备交付时,突然出现了bug,所有人员需要加班、等待问题的处理; 1.2. DevOps开发模式 DevOps是Development和Operations两个词的结合,将开发和运维结合起来的模式:.

魔法革1996 6254

刚买的腾讯云安装jenkins步骤,服务器安装jenkins步骤

jenkins

weixin_39838846的博客 1855

Jenkins - 集群搭建和服务部署【图文】

Jenkins集群的搭建首先基于单台Jenkins搭建并且可以部署项目的基础上,搭建详细过程可以参考:Jenkins - 单机和集群搭建、基于git分支部署spring boot项目(脚本、docker发布)、gitlab钩子部署【图文详解】 刚开始自己的理解是搭建Jenkins集群,肯定是需要在其他服务器上也部署 jenkins.war 包,并且将两者进行关联。其实Jenkins从节点不需要搭建服务,只是需要满足下面两个条件: 1、jdk、git、maven环境一致 符合Jenkins执行环境,包括

it_lihongmin的博客 4913

Jenkins+GitLab+SonnarQube搭建CI/CD全流程

CI/CD 1.1 CI - 持续集成 持续集成( Continuous integration , 简称 CI )指的是,频繁地(一天多次)将代码集成到主干。持续集成的目的就是让产品可以快速迭代,同时还能保持高质量。它的核心措施是代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。通过持续集成团队可以快速的从一个功能到另一个功能,简而言之,敏捷软件开发很大一部分都要归功于持续集成。 持续集成的组成要素 一个自动构建过程, 从检出代码、 编译构建、 运行测试、 结果记录、 测试.

虫虫的博客 4822

【实战】企业级持续集成(DevOps自动化平台):git + gitlab + jenkins + pipeline + maven + harbor + docker + k8s...

为什么要写企业级持续集成(jenkins + pipeline + k8s)? 目前网上自动化持续集成的资料很多,但基本上都是局限于jenkins自由风格的job,结合shell脚本来实现持续集成,这种方式的缺点也很明显:   1、构建出问题,排查困难   2、构建节点挂了,就不能完成构建任务 而当前主流技术是 “ k8s + 微服务 ” 等,我们完全可以利用k8s的优势来完成持续构建任务,每次...

全栈测试笔记 2903

解读Autoware.Universe规划模块:Behavior Path Planner

Behavior Path Planner是一个基于行为生成不同形态路径的路径规划器,负责生成 基于交通状况的路径(path), 车辆可以移动的可行驶区域(drivable area)(在路径消息中定义), 将被发送到车辆接口的转向信号(turn signal) 命令。

策 5493

Linux系统:第十四章:安装Docker,安装配置gitlab私有仓库以及jenkins自动化部署(图文)

如果不小心删除了/var/lib/docker导致后面拉取镜像时报错open /var/lib/docker/tmp/GetImageBlob974299692: no such file or directory,不用改什么操作,重启docker即可三、安装配置gitlab#gitlab-ce为稳定版本,后面不填写版本则默认pull最新latest版本。

m0_60229361的博客 881

从论文到生产:iSLIP优先级匹配算法在SDN交换机中的20年演进史

本文回顾了iSLIP优先级匹配算法在SDN交换机中的20年演进历程,从斯坦福大学的原始论文到现代芯片实现。通过独特的指针滑动和迭代循环机制,iSLIP算法显著提升了交换机的吞吐量和公平性,解决了传统FIFO调度的队头阻塞问题。文章详细探讨了算法在硬件实现中的工程挑战、开源实践及未来AI时代的智能调度方向。

weixin_29230649的博客 332

Linux系统:第十四章:安装Docker,安装配置gitlab私有仓库以及jenkins自动化部署(图文)(1)

需要注意的是docker容器每次重新启动,会将容器内部生成的ssh key移除掉,所以我们可以通过映射路径或者复制宿主机的ssh key到容器内部,也可以重新生成然后去到gitlab的ssh key配置。#出现Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.指定root用户添加到用户组,然后重试开机自启动设置。

2401_83947105的博客 105

当Kmer遇到多倍体:复杂基因组Survey分析中的避坑指南

本文针对小麦、棉花等多倍体及高杂合复杂基因组的Survey分析,深入解析了Kmer分布图解读中的常见陷阱。文章重点探讨了如何超越理想二倍体模型,利用Smudgeplot等工具准确判断基因组倍性,并提供了从参数优化、污染判断到结果验证的全流程实战指南,帮助研究者规避错误,获得更准确的基因组大小、杂合度等关键信息。

yhn45678901的博客 1010

osgEarth 球上显示地形数据库

osgEarth 球上显示地形数据库 本文展示了一种由DSM和DEM得到Osgb工程,并在osgEarth球上显示的方法。其中DSM、DOM到Osgb工程的转换由VPB(VirtualPlanetBuilder)来实现,并采用Model图层将Osgb工程在球上显示。 本文主要解决一下问题: VPB编译 VPB生成地形 地形在球上显示 目录 1 前言 2 VPB编译与使用 3 地形在osgEarth球上显示 内容 1 前言 VirtualPlanetBuilder是一个开源代码工具,用于根据

CPWWHSU的博客 2439

什么是CICD? GitLab + Jenkins 持续集成实战部署手册

内容是一篇关于GitLab+Jenkins持续集成实验手册的详细文档,涵盖三节点部署、代码推送、自动构建发布等。摘要需要简洁概括核心内容,不超过150字。</think>本文通过三节点实验环境(GitLab、Jenkins、Web服务器),演示从IDEA推送代码到GitLab,Jenkins自动拉取、Maven打包,并经SSH发布至目标服务器启动应用的完整CI/CD流程。涵盖GitLab Omnibus部署、Jenkins容器化配置、参数化构建及应用容器化演进,提供命令验证与常见问题排查,适合运维/开发人员

Ningcode的博客 385

CPD (Coherent Point Drift) 算法实现点云配准 C++版

作为和icp并列的点集配准算法cpd为什么没有icp火,等我把整个方案跑完才明白。 首先下载cpd https://github.com/gadomski/cpd 包含的fgt https://github.com/gadomski/fgt 下载到win10的解压后 运行cmake来进行编译 这个时候会提醒缺少eigen3 fgt python 这几个都安装排除后 在build文件夹下会生成vs2017的源码,右键全部生成后在 .\cpd-master\build\Debug 下会生成一个cpd.li

uranus1992的博客 3511

Jenkins一键打包部署Spring Boot 应用的Docker镜像

一、前言 1、本文主要内容 ​ 将在项目中实际使用到的相关东西整理记录一波,同时可以方便其他同学在使用到的时候参考一下(自己也备忘),有不对的地方,欢迎指出~~ Docker部署SpringBoot 项目通用Dockerfile文件、脚本 Jenkins新建任务图文详解 3、本篇环境信息 服务器 操作系统 硬件配置 IP 说明 CentOS 7 4C16G 10.133.28.54 部署Jenkins Jenkins版本 Jenkins安装包有两种,一种是LTS,一种是Wee

hzj_java的博客 1086

从你的全世界路过---陌陌X-SIGN还原

我们上期介绍了hook 接口方式,今天我分析so 层。学习是为了复杂的事情简单化。不用如此繁琐。跟进native_sdbyecbu37x这个函数,我们f5看伪代码 v13 = sign(v9, v10, v11, a6); 跟进这个函数 代码如下(示例): 2.代码贴入 SHA消息摘要java代码如下: java 代码如下(示例): 总结 算法,结合动态调试!

任雪飘的博客 2303

Loki 分布式日志中心服务

分布式日志中心 Loki + Promtail + Grafana

原名又逢乱世。不要放下学习的脚步,毕竟比天天打牌、钓鱼、打游戏更能从内在充实自己。 2355

centos7下搭建jenkins+gitlab+gradle+sonarqube+springBoot+docker日志预警详细图文

第一篇

neutrons的博客 2225

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

GitLab自托管部署与DevOps实践:从Docker安装到CI/CD全流程指南

版本控制系统是现代软件开发的基石,它通过记录代码变更历史、支持团队协作分支管理,保障了项目的可追溯性与协作效率。其核心原理在于分布式存储与差异化管理,这使得开发者可以并行工作并高效合并成果。在众多工具中,Git已成为事实标准,而围绕Git构建的DevOps平台则进一步将代码管理、持续集成与部署流程一体化,极大地提升了软件交付速度与质量。GitLab正是此类平台的杰出代表,它将代码仓库、CI/CD流水线、安全扫描和项目管理等核心DevOps实践深度融合。对于注重代码安全、有合规需求或希望深度定制流程的团队,自

weixin_30892889的博客 372

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Jenkins - 单机和集群搭建、基于git分支部署spring boot项目(脚本、docker发布)、gitlab钩子部署【图文详解】

目录 Jenkins使用Docker方式安装 直接使用 Jenkins.war 启动 配置管理Jenkins 1、Jenkins原理和基本初始化 2、安装 Publish over SSH插件 3、安装和配置工具【jdk、git、maven】 4、配置项目 5-1、脚本Docker部署 5-2、脚本命令行部署 之前也接触写了好几篇Jenkins的博客,但是自己使用最新版本的Jenkins【2.339版本】,然后去发布Spring boot项目,发现还是花了自己不少的时间,所以记录一下。.

it_lihongmin的博客 1725

docker打包镜像上传_Jenkins | 一键打包部署Spring Boot 应用的Docker镜像

一、前言1、本文主要内容 将在项目中实际使用到的相关东西整理记录一波,同时可以方便其他同学在使用到的时候参考一下(自己也备忘),有不对的地方,欢迎指出~~Docker部署SpringBoot 项目通用Dockerfile文件、脚本Jenkins新建任务图文详解3、本文环境信息服务器操作系统硬件配置IP说明CentOS 74C16G10.133.28.54部署JenkinsJenkins版...

weixin_29191761的博客 225

jenkins访问地址_【图文】Jenkins教程创建Maven项目

前期准备本教程是和gitlab集成,所以要有gitlab仓库。注意:如果后期要弄自动部署的话,你Jenkins的地址gitlab必须能访问到。不然gitlab监听到事件就通知不了Jenkins了;环境Centos 7Jenkins(Docker版)所需插件除了搭建Jenkins时安装的插件,还需安装的插件Maven Integration[1]安装Maven点击侧边栏的Manage Je...

weixin_39855634的博客 420

微服务架构[搭Docker+Jenkins+GitLab或SVN+Gradle或Maven+SpringBoot云上容器DevOps开发模式全自动化构建并部署项目]

本文图文讲解Docker+Jenkins+GitLab或SVN+Gradle或Maven+SpringBoot云上容器DevOps开发模式全自动化构建并部署项目,是微服务架构系列的搭环境篇,后续的微服务都在此基础上运行。看下效果图: 详情请访问:https://www.xubingtao.cn/2020/04/23/microservice_architecture_devops ...

App Store.公众号.小程序:分享录 308
上一篇: Linux系统:第十三章:centos误删文件如何恢复文件数据
下一篇: Kafka:第一章:基本概念以及安装Kafka,单播模式和多播模式
Java程序员廖志伟
Java程序员廖志伟 优质创作者: Java技术领域 优质创作者: Java技术领域 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄8年 2万+粉丝 1902原创
评论 69
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java程序员廖志伟

赏我包辣条呗

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值