.Net Core和DevOps系列:Jenkins安装(Docker)

本系列的其他章节
 
 
Jenkins是什么?
Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。
目前,在 Docker Hub 上有三个不同的仓库正(或曾经)被当作“官方” Jenkins 镜像。除jenkins/jenkins外,其他两个官方已经废弃
# docker pull jenkins/jenkins
0
 
因为Jenkins部署在docker上,我们在启动容器前先要做一些准备。确认libltdl.so.7是否安装
# locate libltdl.so.7
0
 
如果没有找到,请使用以下命令安装:
# yum install libltdl.so.7
0
 
Jenkins启动容器命令如下:
docker run -itd --privileged --user=root --restart=always -p 8080:8080 -v /etc/localtime:/etc/localtime:ro -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -v /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7 -v /home/docker_jenkins:/var/jenkins_home --name="jenkins_ui" -e JAVA_OPTS="-Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true" jenkins/jenkins
0
这里来看一下命令中使用到的参数的含义
参数
描述
-i
以交互模式运行容器,通常与 -t 同时使用;
-t
为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-d
后台运行容器,并返回容器ID;
--privileged
容器获取宿主机root权限(特殊权限-)的配置
--user
为容器内运行的程序授予指定的权限:
--user=root
--restart
容器重启策略:
no,默认策略,在容器退出时不重启容器;
on-failure,在容器非正常退出时(退出状态非0),才会重启容器;
on-failure:3,在容器非正常退出时重启容器,最多重启3次;
always,在容器退出时总是重启容器;
unless-stopped,在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器。
-p
端口映射,格式为:
宿主机端口:容器端口
8080:8080
-v
目录挂载,格式为:
宿主机的目录:容器目录
/etc/localtime:/etc/localtime:ro 同步宿主主机和容器的时间
/var/run/docker.sock:/var/run/docker.sock 挂载共享docker.sock
/usr/bin/docker:/usr/bin/docker 挂载共享docker
/usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7 挂载共享文件库
/home/docker_jenkins:/var/jenkins_home 挂载Jenkins数据文件目录
--name
启动的容器名称
-e
传递环境变量:
禁用跨站请求伪造保护,此处可根据实际情况配置:
JAVA_OPTS="-Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true"
 
镜像运行起来后,接下来就是配置Jenkins了,输入网址http://*.*.*.*:8080/等待程序初始化
0
 
初始化完成后开始配置程序
0
 
这里要进入挂载的目录查看初始化密码
# cat /home/docker_jenkins/secrets/initialAdminPassword
0
 
输入密码后加进入配置界面,新手选择推荐安装
0
 
等待所有插件安装完成
0
 
配置管理员账号
0
 
配置访问地址,如果没有其他要求,默认的就行
0
 
初始化配置完成
0
 
在使用前我们先做好准备工作,将git仓库的用户凭证先配置好
0
0
0
0
0
后面我们在拉取源代码的时候会用到这个凭证。
 
下面我们来建一个尝试使用Jenkins来构建一个docker镜像,新建一个项目
0
 
这里选择流水线
0
0
 
编辑流水线脚本代码如下:
pipeline{
    agent any
    stages {
        stage("拉取代码"){
            steps {
                echo 'STEP 1:拉取代码'
                git credentialsId: 'aliyun_gitea_admin', url: 'http://你的域名或IP:3000/t_admin/WebCore5.git'
            }
        }
        stage('构建docker') {
            steps {
                echo 'STEP 2:构建docker'
                sh "docker build -f WebCore5/Dockerfile -t webcore5:latest ."
            }
        }
    }
}

 

选中刚才创建的项目,立即构建
0
 
构建成功
0
 
使用命令查看宿主机上的docker镜像
# docker images

0

 
posted @ 2021-04-27 09:57  爱听民谣的程序猿  阅读(268)  评论(0编辑  收藏  举报