1.在centos7下安装docker,通过yum来安装docker,执行如下命令

# yum install docker            --安装docker,最好不要安装最新版本的Docker,最新版本的docker不稳定可能存在bug

# systemctl start docker      --启动docker服务

# systemctl enable docker  --设置开机启动docker,防止机器关机后,docker服务需要手动启动

2.安装完docker后,接下来安装jdk(因为jenkins是java开发的)以及从网络下载jenkins安装包,注意 /data/software为我的系统保存jenkins包的路径,用户可以自行设置,注意jenkins的rpm包地址可能失效,失效的话,请登录jenkins官网进行下载,如果嫌网络下载速度慢,可以将离线下载的包,通过sftp工具拷贝到主机上进行安装

# yum install java  或者 # yum install java-1.8.0-openjdk

wget -P  /data/software https://prodjenkinsreleases.blob.core.windows.net/redhat-stable/jenkins-2.138.3-1.1.noarch.rpm

3.转到/data/software 下,安装jenkins包

# cd /data/software
# rpm -ivh jenkins-2.138.3-1.1.noarch.rpm

4.启动jenkins服务,并通过 http://localhost:8080 访问启动的jenkins(默认jenkins管理页面是ip:8080)

# systemctl start jenkins  //启动jenkins服务

# systemctl enable jenkins //开机启动jenkins服务

5.不出意外将通过地址能够访问jenkins,但是也不排除无法访问jenkins,因为centos7默认防火墙是开启,导致无法通过浏览器访问jenkins,我们可以通过在执行下面的命令,关闭系统的防火墙

# systemctl stop  firewalld.service  --关闭防火墙服务

# systemctl disable  firewalld.service  --取消开机启动防火墙服务

6.解决无法访问的问题后,通过地址访问到如下的页面

7.在centos7中执行下面的命令得到初始密码,进行登录操作

# vi /var/lib/jenkins/secrets/initialAdminPassword

8.输出密码后,进入如下界面,选择安装推荐插件

9.安装完推荐的插件后,进入创建管理员用户

10.设置完所有的步骤后,终于进入jenkins的管理界面,如下图

11.jenkins安装成功后,下面将继续介绍使用jenkins自动构建自己github上dotnet core程序

12.在jenkins主界面选择创建新任务,如下图

12.输入任务名称和选择构建咋样的风格的任务,选择完毕后,确定保存

13.确定后,进入任务配置页面,在general页面填写任务说明与描述,以及设置其他参数信息

14.填写general页面,进行源码管理,在这里我选择github,用户可以选择其他代码管理方式

15.进入centos7中执行命令,安装git

16.安装完成git后,再次查看之前报错的页面,错误消失了

17.因为在general页面配置了参数,我们将在源码管理页面使用,如下图所示

18.构建触发器页面,我这里不进行任何设置,用户可以凭借自己的需求自行设置

19.构建环境页面,因为想在构建环境页面,能够设置Version Number 的信息,在jenkins的系统设置中,插件管理安装Version Number 插件如下图,安装完成后,就可以在构建环境页面通过Version Number Plug插件生成优雅的版本号

20.构建页面,这里选择“执行shell”,填写shll脚本(这里最好将shell脚本命令写到文件中,以便后续的修改),在这里使用shell脚本,有利于后面的维护操作,不出问题,项目将构建成功

21.保存后,构建任务,发生错误(在jenkins任务控制台输出页面),输出如下图,执行 dotnet restore 命令失败,主要是系统中没有安装dotnet环境

22.在centos7中安装dotnet core运行环境

# rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm  --在安装Net之前,我们需要安装微软key以及依赖,这个命令每台机器只要执行一次就行,安装dotnet sdk时,根据项目的版本选择特定的sdk进行安装

#  yum install libunwind libicu --dotnet-sdk需要依赖“libunwind”和“libicu”

#  yum install dotnet-sdk-2.0.0   --安装dotnet-sdk 版本2.0.0

23.在执行构建的过程中出现了“sudo: no tty present and no askpass program specified”的错误,原因在于在shell脚本中,使用sudo命令来提升执行权限,因为Jenkins服务器在执行sudo命令时的上下文有误,导致这个命令执行的异常,以下为解决方式

在Jenkins宿主服务器上运行如下命令 
     # sudo visudo
     在文件的末尾加上一行 
     jenkins ALL=(ALL) NOPASSWD: ALL
     重启Jenkins服务 
     # systemctl restart jenkins
     最后,重新执行构建任务,不会出现先前的错误。

如果误操作修改了/etc/sudoers的权限来修改上述文件,则会导致如下所示的错误:

sudo :/etc/sudoers is world writable 
      sudo : no valid sudoers source found, quitting 
      sudo : unable to initialize poling plugin

这是Linux的一种保护机制。因此,如果出现上述误操作,则需要执行如下命令来解决: 
       # pkexec chmod 0440 /etc/sudoers

24.在构建过程中,出现错误  shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory,具体的解决方案可以参考如下文章

执行脚本提示shell-init: error retrieving current directory:getcwd问题分析_juyin2015的博客-CSDN博客_shell-init

25.在执行shell脚本的过程,执行镜像启动的过程,容器启动后马上就关闭了,可以参考下面的文章

解决docker容器启动不了的问题 - 简书

26.下面是shell文件的具体内容,供大家参考

27.下面是Dockerfile文件的内容,供大家参考

28.使用docker exec 命令出现如下的错误

rpc error: code = 2 desc = oci runtime error: exec failed:
container_linux.go:247: starting container process caused "process_linux.go:110:
decoding init error from pipe caused \"read parent: connection reset by peer\""

用户可以通过以下的命令来进行处理

# yum update

# yum downgrade docker docker-client docker-common     --before and no idea for what the old version of docker, just run

因为维护之前的项目遇到一些问题,特此记录一下,同理对于java程序一样适用哈。

以上就是完整的过程,总算写完了,花了不少时间,不足之处,还往大家的见谅。

centos7下jenkins部署应用程序相关推荐

  1. 阿里云centos7下环境部署和项目部署

    阿里云centos7下环境部署和项目部署系统环境: 阿里云centos7系统 linux下的jdk1.8 linux下的tomcat8 linux下的mysql5.7 jdk1.8的安装 下载jdk官 ...

  2. Centos7下安装部署nagios-server

    目录 1. nagios简介 2. 服务器准备 2.1 主机信息+IP地址 2.2 查看主机的系统版本信息 2.3 暂时关掉Selinux和防火墙 3. 安装nagios依赖包和需要的环境 3.1 安 ...

  3. centos7下Jenkins管理员admin密码忘记后处理方法

    1.环境描述 centos7下一套gitlab+Jenkins持续集成CI环境,运行稳定,却出现了admin密码忘记 2.一般初始密码 通常情况下,在初始化完成后的Jenkins环境中,初始密码在/v ...

  4. Centos7下安装部署oracle数据库方法及问题汇总

    目标:在centos7上配置oracle数据库服务器,并在win7上面使用pl/sql成功访问该oracle数据库 系统环境: 服务器:centos7 64位 客户端:win7 64位 注意cneto ...

  5. centos7下docker 部署javaweb

    为什么80%的码农都做不了架构师?>>>    LXC linux container 百度百科:http://baike.baidu.com/link?url=w_Xy56MN9i ...

  6. GlassFish下手动部署JSF程序

    以login项目为例: 目录结构: login | |---index.jsp |---page.jsp |---WEB-INF/ |---web.xml |---faces-config.xml | ...

  7. 为什么root下不能使用passwd命令_基于centos7下安装部署openldap+phpldapadmin

    01初始化准备 系统CentOS7 64位 配置yum源 wget http://mirrors.aliyun.com/repo/Centos-7.repo cp Centos-7.repo /etc ...

  8. 云主机Centos7下WordPress部署指南

    参考文章: https://blog.csdn.net/qq_25504829/article/details/104254788 一.天翼云安全组添加端口 控制中心-->虚拟私有云--> ...

  9. Centos7下安装部署Zabbix-server 3.4

    目录 1. Zabbix简介 2. 服务器准备 2.1 主机信息+IP地址 2.2 查看主机的系统版本信息 2.3 暂时关掉防火墙和Selinux 3. 安装Zabbix-server需要的环境(LA ...

最新文章

  1. BCELoss BCEWithLogitsLoss 多标签损失函数
  2. python中sys.stdout、sys.stdin
  3. 百战百胜:人生10个成功秘诀
  4. 看屁股,你是一头大象吧
  5. redis中的hash
  6. oracle服务器错误,oracle 11g数据库维护中错误总结
  7. 项目编译失败_Swift源码编译让底层更清晰
  8. android ida多线程调试,C/C++知识点之ida动态调试.so 动态加载(必须真机)
  9. 乙级(Basic Level) 1010 月饼
  10. php 显示当前年月日时分秒,php 获取当前前后年、月、星期、日、时分秒的时间...
  11. 滑雪(洛谷-P1434)
  12. OpenShift 4 - 使用Prometheus监控Node节点
  13. 献给写作者的 Markdown 新手指南及语法
  14. 如何把hadoop源码关联到eclipse工程中
  15. 附件文件超过了服务器的大小,Exchange 2010修改附件大小限制
  16. 中国移动智能网关(光猫)超级管理员账户密码 型号: PT924G
  17. 汽车之家所有车型价格爬虫
  18. 转:普通继电器和自锁继电器的差别
  19. 几个有效防止服务器攻击的小妙招
  20. 迅雷android面试,迅雷面试题(转载)

热门文章

  1. Shadertoy 多个buffers 转成Threejs代码
  2. java.lang.UnsatisfiedLinkError: dlopen failed: file offset for the library /data/app/com.beiya.litt
  3. linux文件目录管理
  4. NLP学习(一)基础篇
  5. Linux网络-网络配置命令
  6. IMX6DL 在Android4.4.2版本插入SD卡不能开机
  7. PHP单例模式(Singleton Pattern)
  8. Ubuntu-基础指令汇总
  9. 思维导图Java篇(一)
  10. 硬盘结构,主引导记录MBR,硬盘分区表DPT,主分区、扩展分区和逻辑分区