Docker安装Jenkins教程 |
您所在的位置:网站首页 › 水浒传阅读心得300字初三 › Docker安装Jenkins教程 |
一、当前配置环境
CentOS7: 1908 IP: 192.168.81.103 hostname: jenkins 镜像: jenkins/jenkins ![]() 1.关闭防火墙和SeLinux systemctl stop firewalld && systemctl disable firewalld setenforce 0 sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/sysconfig/selinux2.禁用swap交换分区 swapoff -a && sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/sysconfig/selinux 三、Docker安装1.配置docker源 yum install -y wget wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo2.安装docker环境依赖 yum install -y yum-utils device-mapper-persistent-data lvm23.安装docker yum install docker-ce-18.09.9 docker-ce-cli-18.09.9 containerd.io -y4.启动docker并设置为开机自启 systemctl start docker && systemctl enable docker5.配置镜像加速 # 这里使用的是我的阿里云镜像加速,可以自己去阿里云配置一个 mkdir -p /etc/docker tee /etc/docker/daemon.json microsoft.gpg RUN mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg RUN sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-debian-stretch-prod stretch main" > /etc/apt/sources.list.d/dotnetdev.list' # Install the .NET Core framework RUN apt-get update RUN apt-get install -y dotnet-sdk-3.13.将Dockerfile文件拖入到/root/jenkins目录中,构建镜像 cd /root/jenkins docker build -t my-docker-jenkins .4.通过my-docker-jenkins镜像运行容器 docker run -d --name jenkins -p 8080:8080 \ -v /usr/bin/docker:/usr/bin/docker \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /home/jenkins_home:/home/jenkins_home \ -v /usr/jenkinsci/:/usr/jenkinsci/ \ my-docker-jenkins命令行解读: 第一行:将镜像容器以后台方式运行并命名为jenkins,并对外开放8080端口映射到jenkins内部的8080端口 第二行:将宿主机上面的docker命令行挂载到容器上面,不然在执行jenkins任务时用到docker命令时会报docker:command not found 第三行:将宿主机上的docker.sock挂载到容器中的相应位置,使得容器中的docker命令行能跟宿主机的docker通信 第四行:挂载我们创建的配置文件存放目录到指定的文件夹 第五行:挂载我们创建的配置文件存放目录到指定的文件夹,用于存放CICD的模板 5.运行jenkins 在浏览器输入192.168.81.103:8080 通过镜像获取密码 docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword安装插件(如果遇到插件安装失败,重试就好了)并配置第一个用户名和密码 安装后配置完用户,就可以使用Jenkins了 五、使用Jenkins创建任务1.新建任务 2.配置任务,通过gitee仓库 我gitee上随便弄了个测试,由于是公开的就不需要凭证,如果是私有的gitlab的,就添加Credentials,如下所示 3.构建触发器 构建触发器比如在git提交代码后,Jenkins自动拉取代码后立即构建,这一步我们需要先在系统设置-->插件管理安装响应的插件,例如gitlab插件,我就把gitlab所有相关插件一并安装上。 构建触发器如下,你也可以根据自己所需配置相关信息 4.配置shell脚本 由于我把shell脚本放在/usr/jenkinsci目录下了,也在启动容器的时候挂载了卷 -v /usr/jenkinsci/:/usr/jenkinsci/ ,所有在容器内部是获取的到的,也可以用以下命令处理 #!/bin/bash -ilex dotnet restore mkdir -p /tmp/dotnet/publish/ dotnet publish -c Release -r linux-x64 -o /tmp/dotnet/publish/ echo "Successfully!!!! ^ please see the file ." cd /tmp/dotnet/publish/ PROJECT_NAME=${JOB_NAME,,} IMAGE_VERSION=`date +%Y%m%d%H%M%S` IMAGE_VERSION_RANDOM=$RANDOM IMAGENAME=${JOB_NAME,,}$IMAGE_VERSION$IMAGE_VERSION_RANDOM echo 'start build image' # 项目的Dockerfile属性需要设为复制模式,不然publish后找不到 docker build -t $IMAGENAME . echo 'end build image' rm -rf /tmp/dotnet/publish/5.配置完后立即构建,看看有没有失败的,如果失败了,可以点击构建的版本看看控制台输出什么错误,我是遇到挺多坑的,就是由于自己没配置好或者shell脚本没写好。 主要有以下错误&分析&解决: 1.xxx.sh:not found 修改错误:在Execute shell中第一行改为这句话:#!/bin/bash -ilex 2.docker: command not found 修改错误:在docker run -d --name jenkins时,一定要映射-v /usr/bin/docker:/usr/bin/docker 解决完bug也就构建成功了 六、参考 https://mp.weixin.qq.com/s/ngUfM27drd3fApC2PlJkOQ https://www.cnblogs.com/YahuiWang/p/jenkins-docker-dotnet-core-publish.html https://www.cnblogs.com/little-ab/p/12974139.html
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |