docker容器里安装jenkins

317 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第2天,点击查看活动详情

一. 安装docker

  1. 自动化安装docker

curl -fsSL get.docker.com | bash -s docker --mirror Aliyun

  1. 启动docker

sudo systemctl start docker

二、安装jenkins

  1. 拉取jenkins镜像,这步比较慢。

docker pull jenkins/jenkins:lts

  1. 目录权限

chown -R 1000 /mydata/jenkins_home

  1. 运行jenkins

docker run -di --name=jenkins -p 8080:8080 -v /mydata/jenkins_home/:/var/jenkins_home jenkins/jenkins:lts

备注:映射java、maven等目录

docker run -v /usr/local/apache-maven-3.8.4:/usr/local/apache-maven-3.8.4 -v /usr/local/java:/usr/local/java -v /mydata/jenkins_home/:/var/jenkins_home --name myjenkins -p 8080:8080 -d jenkins/jenkins:lts

  1. 解锁jenkins

查看密码命令:

cat /mydata/jenkins_home/secrets/initialAdminPassword

跟网站上的路径不一样,因为docker映射到了/mydata/jenkins_home路径上

  1. 安装推荐的插件

点击安装推荐的插件即可。

  1. 插件安装完成后创建一个账号。
  2. 点以管理员账号继续,后面有一个输入地址,保持不变点保存并完成
  3. 全局配置
  • 配置JDK,选择自动安装。需要输入oracle账号密码。

  • 配置maven

  1. 安装SSH插件

  1. 配置系统管理

在系统配置里找到SSH,点添加

密钥那里点添加,添加服务器的密钥即可,id和描述随便输

  1. 写脚本

mkdir -p /usr/local/jenkins

cd /usr/local/jenkins/

vim jenkins.sh

#! /usr/bin/env bash
app_name='jenkinsdemo'
docker stop {app_name}
echo '-------stop container--------'
docker rm ${app_name}
echo '-------rm container----------'
docker run -di --name=${app_name} -p 7070:7070 test/${app_name}:1.0-SNAPSHOT
echo '-------start container-------'

chmod +x ./jenkins.sh

  1. 新建任务

输入任务名字,选FreeStyle project(自由风格的项目)

然后选择源码管理,填入源码仓库地址

然后在构建里选择调用顶层maven目标

然后在添加一个构建,选Execute shell script on remote host using ssh,目的是为了执行刚才我们写的jenkins.sh脚本

保存并退出

  1. 返回任务列表开始构建

备注:因为是通过jenkins安装的maven,拉取代码是从默认的中央仓库拉取的,会比较慢。可以改为从阿里的仓库拉取

cd /mydata/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/maven3.6.2/conf

vim settings.xml

#在mirrors标签里加入
 <mirror>  
     <id>alimaven</id>  
     <name>aliyun maven</name>  
     <url>http://maven.aliyun.com/nexus/content/groups/public/</url>  
     <mirrorOf>central</mirrorOf>          
 </mirror>