docker+jenkins自动化部署

写在前面,jenkis不建议用docker安装,因为会涉及到很多环境参数,很麻烦,以及像gogs这种开源git服务器,最好老老实实传统

安装一下,因为这种软件基本是一次性的,不会到处安装,不像很多服务或者类似做政府项目的,一套代码需要部署到各个地市。

那么用docker就非常方便了。

另外linux下rz命令很好用。不是默认支持的,请自行百度。

众所周知,java生态中比较重要的就是软件的版本。因此了解各个软件的版本非常重要。

而docker需要在linux系统上安装,因此了解当前操作系统的版本很重要。

若是centos7或者以上,最好。若是centos6.5那么最好升级内核。然后安装docker1.8及以上。

Docker只支持64-bit的内核为3.10以上的Linux系统,不升级内核会特别卡,可以通过下面命令查看当前系统内核版本

uname -r 

以及查看当前linux版本 cat /etc/issue  linux版本在6.5没关系,但是一定要保证内核版本在3.10以上。

# 查看当前版本:
cat /etc/issue
# 导入public key
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# 安装ELRepo到CentOS-6.8中   
rpm -ivh http://www.elrepo.org/elrepo-release-6-8.el6.elrepo.noarch.rpm
# 安装**kernel-lt(lt=long-term)**
yum --enablerepo=elrepo-kernel install kernel-lt -y
# 或者安装kernel-ml(ml=mainline) 
yum --enablerepo=elrepo-kernel install kernel-ml -y
# 编辑/etc/grub.conf文件,修改Grub引导顺序
# 确认刚安装好的内核在哪个位置,然后设置default值(从0开始),一般新安装的内核在第一个位置,所以设置default=0
# 重启,查看内核版本号
reboot
uname -r
安装docker

或者参考下面这个

https://www.cnblogs.com/tymagic/p/10794477.html
yum install https://get.docker.com/rpm/1.7.1/centos-6/RPMS/x86_64/docker-engine-1.7.1-1.el6.x86_64.rpm

另外不建议安装这个版本的docker 只不过我开始不知道被很多版本绕晕了 已经骑虎难下。

建议升级内核可以参考上面 安装docker网上随便找篇博客,必须是docker-ce版本。也就是说一旦你看到的博客介绍的不是

docker-ce那么就可以不用看了,因为会缺失很多特性。

docker-io docker-engine docker-ce docker-ee 这么多版本你们分清了吗。

 

# 1、查看安装过的docker:
yum list installed | grep docker
docker.x86_64                           2:1.13.1-74.git6e3bb8e.el7.centos
docker-client.x86_64                    2:1.13.1-74.git6e3bb8e.el7.centos
docker-common.x86_64                    2:1.13.1-74.git6e3bb8e.el7.centos
# 2、卸载docker:
sudo yum remove -y docker-ce.x86_64 docker-client.x86_64 docker-common.x86_64
# 3、删除容器镜像:
sudo rm -rf /var/lib/docker
# 4、 重新安装docker
sudo yum install docker-ce

 

 

若是安装的是docker1.7,docker1.7不支持在镜像容器向宿主机cp文件,只支持宿主机向镜像容器cp文件。

即docker cp命令在1.7版本上是单向的。建议有条件尽量安装docker1.8以上。为了解决docker1.7不能向宿主机传输文件的问题。

我暂时只能想到的是linux scp命令并且通过建立宿主机和镜像容器免ssh登陆。这样就不用输密码了。

Linux服务器之间建立信任关系,ssh免密码登录。

https://blog.csdn.net/chichuduxing/article/details/68491134

ssh root@IP  /root/test.shell  这样就能在镜像容器内执行宿主机 root目录下的shell脚本。

也能用scp命令从宿主机下载文件

scp root@111.229.237.124:/root/test.shell /root/  下载宿主机的test.shell脚本到 docker容器内

docker

service docker stop 停止docker

service docker start 启动docker

记得将jenkins安装publish over插件。参考如下博客。

Jenkins入门教程之安装Publish over SSH插件并配置(六)用于自动部署Spring Boot应用

https://blog.csdn.net/zjh_746140129/article/details/80904789

另外常用docker命令 参考如下博客

https://www.cnblogs.com/sitoi/p/10971356.html

centos忘记mysql密码方法 参考如下博客

https://blog.csdn.net/Swust_Zeng_zhuo_K/article/details/81989040

有的时候会缺失jar包,需要自己手动把jar包打到仓库里面

cd /var/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/maven3.6.1/bin
./mvn install:install-file -Dfile=/root/ojdbc6-12.1.0.1-atlassian-hosted.jar -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=12.1.0.1-atlassian-hosted -Dpackaging=jar 
./mvn install:install-file -Dfile=/root/sqljdbc4-4.0.jar -DgroupId=com.microsoft.sqlserver -DartifactId=sqljdbc4 -Dversion=4.0 -Dpackaging=jar  

mvn install:install-file -Dfile=/root/jenkins/alipay-sdk-java-20161215.jar   -DgroupId=com.alipay -DartifactId=alipay-sdk-java -Dversion=20161215 -Dpackaging=jar

mvn install:install-file -Dfile=/root/jenkins/alipay-trade-sdk-20161215.jar   -DgroupId=com.alipay -DartifactId=alipay-trade-sdk -Dversion=20161215 -Dpackaging=jar

遇到的问题和踩过的坑如下

网上搜索jenkins自动化部署,能搜索很多。流程都差不多,不在此重复叙述。

想叙述一个重要的点,就是linux是有用户这么一个说法的,每安装一个软件就会默认给这个软件创建一个用户,

比如你安装electsearch就会创建一个electsearch用户,那么你安装一个jenkins时候就会创建一个jenkins用户

cat /etc/passwd 查看所有用户列表

就会看到很多软件都会有一个和自己软件名称一样的用户。

那么就需要把这个用户加入到root用户组中使得其有root权限,这样做的目的是为了,该软件有对服务器包括jdk maven

加入到用户组具体百度一下 因为一旦弄反了 就会出大事 因为相当于把root加入到jenkins后 那么系统上很多服务都起不来了 切记

不能弄反!!!

有使用权限,如果不这样做,就会报找不到的错误。 

  

         gpasswd -a jenkins root
         vi /etc/sysconfig/jenkins               

        service jenkins stop
        service jenkins start  

 

还需要将java路径添加到jenkins的初始化文件中,在vi /etc/init.d/jenkins 中

其实安装一个软件最好 的方式 是安装完以后看它到底生成了多少个目录  每个目录里面大致看下 做到心中有数

即了解一下它的架构,这样即使在网上搜索,也能做到有的放矢。不会漫无目的。

参考下面网址

http://www.bubuko.com/infodetail-3319816.html

https://blog.csdn.net/huangchao064/article/details/73616320

需要安装的插件

Maven Integration

Publish Over SSH

Git Parameter

 

参考以下网址

多环境发布指的是多服务器发布  https://www.jianshu.com/p/6288703532cf

https://blog.csdn.net/u012547633/article/details/98505231

https://blog.csdn.net/weixin_43742184/article/details/100513733

jenkins多分支选择 https://www.cnblogs.com/peng-lan/p/12001977.html

centos7防火墙配置  https://www.cnblogs.com/xxoome/p/7115614.html  

多环境 多分支git https://www.cnblogs.com/jiangds/p/10844853.html

jenkins替换镜像加速 https://www.cnblogs.com/hellxz/p/jenkins_install_plugins_faster.html 

清华镜像地址 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

centos7安装jenkins rpm方式  https://www.cnblogs.com/li-zhi-long/p/12026499.html

jenkins 各种镜像地址 http://mirrors.jenkins-ci.org/status.html

jenkins 系列教程 https://blog.csdn.net/zjh_746140129/category_9276512.html

jenkins Process leaked file descriptors  https://blog.csdn.net/weixin_36816337/article/details/82055217

 

 (1) /usr/lib/jenkins/:jenkins安装目录,WAR包会放在这里。
 (2) /etc/sysconfig/jenkins:jenkins配置文件,“端口”,“JENKINS_HOME”等都可以在这里配置。
 (3) /var/lib/jenkins/:默认的JENKINS_HOME。
 (4) /var/log/jenkins/jenkins.log:Jenkins日志文件。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值