【注意:】jenkins的docker镜像,需要从官网进入直接获取,其他地方获取到的docker镜像,可能因为Jenkins版本过低,导致后续插件安装失败等问题!!!

jenkins基本工作原理

1.拉取镜像

需要从官网进入:Jenkins download and deployment

可通过依赖版本号反查jenkins版本

2.创建目录

由于防止jenkins中重要文件因为容器损毁或删除导致文件丢失,因此创建文件对外挂载

mkdir /var/jenkins_home
chmod 777 /var/jenkins_home

3.启动容器 

docker run -d -p 50000:50000 -p 8080:8080 --restart always --privileged=true  --user=root -v /var/run/docker.sock:/var/run/docker.sock -v /data/root/.ssh/:/root/.ssh/ -v /data/root/.m2/:/root/.m2/ -v /usr/bin/docker:/usr/bin/docker -v /mnt/hgfs/:/mnt/hgfs/ -v /data/var/www/:/data/var/www/ -v /var/jenkins_home:/var/jenkins_home -v /etc/localtime:/etc/localtime --name jenkins jenkins/jenkins:2.441
docker exec -it jenkins bash
apt-get update && apt-get install -y libltdl7
exit

privileged: true    #使用该参数,container内的root拥有真正的root权限。
user: root    #指定用户在容器内部拥有root权限 -v /usr/bin/docker:/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock #使jenkins容器内执行docker命令

并查看日志

docker logs -f jenkins

4.配置镜像加速进入

修改 cd /var/jenkins_home && vi hudson.model.UpdateCenter.xml里的内容

修改前

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json下载的是始终是最新的插件,老版本的Jenkins不兼容的。

根据当前版本,替换为https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/dynamic-stable-{$VERSION}/update-center.json,其中{$VERSION}是当前Jenkins的版本。

如果不是LTS版本,则dynamic-stable-VERSION要换成dynamic-VERSION

将 url 修改为 清华大学官方镜像:

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/dynamic-2.441/update-center.json

修改后

<?xml version='1.1' encoding='UTF-8'?>
<sites>
  <site>
    <id>default</id>
    <url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/dynamic-2.344/update-center.json</url>
  </site>

 1).管理员密码获取方法,编辑initialAdminPassword文件(查看,把密码输入登录中的密码即可,开始使用。

进入到容器内部查看密码:docker exec -it jenkins /bin/bash

cat /data/jekins/secrets/initialAdminPassword
 

 

locale   #中文插件
Git Parameter #git分支变量

#安装maven3.6
https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/
cd /var/jenkins_home
wget https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
tar -zxvf apache-maven-3.6.3-bin.tar.gz
mv apache-maven-3.6.3 maven
docker exec -it jenkins bash
echo "export MAVEN_HOME=/var/jenkins_home/maven" >> /etc/profile
echo "export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin" >>/etc/profile
source /etc/profile

第二种Jenkins 安装
此安装 Jenkins 基于 Docker 方式。首先拉取 Jenkins 镜像。
docker pull jenkinsci/blueocean
上面拉取的是最新的镜像

docker pull jenkinsci/blueocean:1.25.3
mkdir -p /var/jenkins_home/
chmod 777 /var/jenkins_home/

docker run --name=jenkins  -v /data/root/.ssh/:/root/.ssh/ -v /data/var/www/:/data/var/www/ -v /var/jenkins_home/:/var/jenkins_home/ -v /var/run/docker.sock:/var/run/docker.sock -v /mnt/hgfs/:/mnt/hgfs/ -v /data/root/.m2/:/root/.m2/ -p 50000:50000 -p 8080:8080 --restart always -d  jenkinsci/blueocean:1.25.3

配置镜像加速
打开宿主机 Jenkins 工作目录下的hudson.model.UpdateCenter.xml文件。

当然,也可以在登录 Jenkins 后在插件的高级设置里进行配置镜像加速,如下:

插件管理-高级设置的最后面,换上这个链接不然无法下载插件<url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>

 查看/var/jenkins_home/secrets/initialAdminPassword文件获取密码。

输入密码后,出现如下界面,推荐选择第一种,选择后等待插件安装。

5.配置Jenkins JDK和Maven

Jenkins容器已经下载好了jdk,通过java -version可以查看。通过echo $JAVA_HOME可以查看jdk安装目录。

Maven我使用的是3.6.3版本的。

 jdk.11

/opt/java/openjdk

安装Maven插件,在Manage Jenkins - Manage Plugins - 可选插件中安装Maven Integration,安装后再新建任务就出现了Maven项目可选项。 

Local 中英文插件切换

5.构建一个简单的服务脚本

重启 Jenkins,然后就可以在新建任务看到 Maven 项目选项了。 

配置码云上的项目地址,如下。添加凭证时需要输入码云的账号和密码。

 

构建命令根据自身情况进行配置,我们从码云拉取的项目是一个简单的 Maven 项目,所以配置简单命令即可。

Post Steps 选择执行 shell。此步骤是在打包完后进行的操作,此为执行 shell 来启动工程。

一个简单的启动服务脚本如下:

#!/bin/bash
 
# 服务名称
SERVER_NAME=jenkins-demo
 
# 工程所在路径(根据自己情况进行调整)
APP_HOME=$(pwd)
 
# maven打包后的jar包名
JAR_NAME=jenkins-demo-0.0.1-SNAPSHOT.jar
 
# jar包的目录
JAR_PATH=${APP_HOME}/target
 
# 杀死之前的进程
PID_FILE="${APP_HOME}"/"${SERVER_NAME}".pid
if [ -f "${PID_FILE}" ];then
PID=`cat "$PID_FILE"` && kill -9 $PID && echo "kill process "${PID}" finished!"
fi
 
cd $JAR_PATH
 
# 修改文件权限
chmod 755 $JAR_NAME
 
# 启动服务
BUILD_ID=dontKillMe nohup java -jar $JAR_NAME &
 
# 将新进程ID写到文件中
JAVA_PID=$!
echo "${JAVA_PID}" > "${PID_FILE}"

保存好工程配置后,点击立即构建,即可进行代码拉取、构建打包、启动服务。

第一次构建 Maven 项目,因为一开始我们为 Jenkins 配置的是自动下载的 Maven 3.6.3,所以首次需要下载 Maven 安装包,导致构建速度会比较慢,从上图日志可以看出,下载的 Maven 安装包被解压到如下目录:

/var/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/maven3.6.3/conf
为加快 Maven 项目下载依赖的速度,我们可以打开setting.xml配置文件,将仓库更改为阿里云的。

vi /var/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/maven3.6.3/conf/settings.xml

将以下内容写入文件中mirrors标签对中间。

<mirror>
  <id>alimaven</id>
  <name>aliyun maven</name>
  <url>https://maven.aliyun.com/nexus/content/groups/public/</url>
  <mirrorOf>central</mirrorOf>        
</mirror>
 
<mirror>
  <id>maven-default-http-blocker</id>
  <mirrorOf>external:http:*</mirrorOf>
  <name>Pseudo repository to mirror external repositories initially using HTTP.</name>
  <url>http://0.0.0.0/</url>
  <blocked>true</blocked>
</mirror>

6.docker部署gitlab服务

docker run --name gitlab --privileged -v /data/etc/gitlab:/etc/gitlab/ -v /data/var/log/gitlab:/var/log/gitlab -v /data/var/opt/gitlab:/var/opt/gitlab -v /mnt/hgfs:/mnt/hgfs/ -p 8001:80 -p 9090:9090 --restart always -d docker.io/gitlab/gitlab-ce:15.11.13-ce.0

登录ip:8001  用户名:root  密码:(cat /data/etc/gitlab/initial_root_password) 

设置中文界面:Settings>preferences>Localization

创建用户:Admin Area >New User,root管理账户设置后依然为英文,但是新建的用户设置后会为中文

关闭自动注册功能

Logo

更多推荐