docker部署jenkins+gitlab自动化流水线
为加快 Maven 项目下载依赖的速度,我们可以打开setting.xml配置文件,将仓库更改为阿里云的。构建命令根据自身情况进行配置,我们从码云拉取的项目是一个简单的 Maven 项目,所以配置简单命令即可。如果我们开发的项目是 Maven 项目的话,就需要安装 Maven 插件,安装后重启 Jenkins。6.不要选择安装推荐的插件,否则会出现版本不支持很多插件安装失败,选择插件来安装,配置码
【注意:】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管理账户设置后依然为英文,但是新建的用户设置后会为中文
关闭自动注册功能
更多推荐
所有评论(0)