docker安装jenkins 并且通过jenkins部署项目(docker in docker)

一、简介:
本文主要记录如何通过docker安装jenkins,由于项目需要,需要用到不同的jdk,nodejs 不同版本,故在此选用 d in d (docker in docker)方式实现。

二、操作:

1.docker 部署 jenkins

docker pull jenkins/jenkins:latest

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

mkdir /data/jenkins

3.启动容器

docker run -d -p 8080:8080 --restart always -v /data/jenkins:/var/jenkins_home -v /etc/localtime:/etc/localtime -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -v /etc/docker/daemon.json:/etc/docker/daemon.json -v /data/docker:/data/docker  --name jenkins jenkins/jenkins:latest

解释:因为 jenkins job 调用 docker 创建新的容器,来跑这个 job 流水线任务,这个新容器没有docker命令,所以我们需要将 /usr/bin/docker,/var/run/docker.sock 挂载到 jenkins 的容器上,又因为我们为docker 配置了一些个性化的配置,所以这里我们也将/etc/docker/daemon.json(docker 配置文件),/data/docker(docker 设置的容器相关配置目录)挂载到 jenkins 容器上。

4.配置 jenkins 镜像加速

进入 jenkins 本机目录

cd /data/jenkins

修改 hudson.model.UpdateCenter.xml 里的内容,使用sed命令

sed -i 's/https\:\/\/updates.jenkins.io\/update-center.json/http\:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins\/updates\/update-center.json/g' hudson.model.UpdateCenter.xml hudson.model.UpdateCenter.xml

或使用vi修改 hudson.model.UpdateCenter.xml 文件,将https://updates.jenkins.io/update-center.json 替换成 http://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

三、jenkins 下载安装 Pipeline(流水线)插件

1.在此处下载流水线插件

image.png

2.新建流水线任务

image.png

3.配置流水线任务(或是构建一个自由风格的软件项目也是可以的,需要在shell中编写执行脚本)

node{
stage('Checkout') {
git branch: 'release', credentialsId: 'xxxxxxxxxxxxx', url: 'http://xxx.git'
}
stage('server build') {
sh 'docker run --rm -v /data/jenkins/workspace/$JOB_NAME:/usr/src/mymaven -w /usr/src/mymaven -v maven-cache:/root/.m2 --network xxxx maven:3.6.0-jdk-8 mvn clean package -Pprod -Dmaven.test.skip=true'
}
stage('docker build') {
docker build -t xxxxxxx
}

关键是这一步(可再此自定义jdk版本)

docker run --rm -v /data/jenkins/workspace/$JOB_NAME:/usr/src/mymaven -w /usr/src/mymaven -v maven-cache:/root/.m2 --network xxxx maven:3.6.0-jdk-8 mvn clean package -Pprod -Dmaven.test.skip=true'

(可再此自定义node版本)

docker run --rm -v /data/jenkins/workspace/$JOB_NAME:/usr/src/app -w /usr/src/app -v yarn-cache:/root/.cache --network xxxx node:16 yarn build:prod

接下来可以将打包好的镜像推送至私有镜像仓库,或是推送至docker hub

提交至镜像仓库后的操作就比较简单了,就不在此赘述。


标题:docker安装jenkins 并且通过jenkins部署项目(docker in docker)
作者:LeeOcean
地址:https://www.leiocean.com/articles/2022/11/06/1667714371251.html

    评论
    0 评论
avatar

取消