Docker安装Jenkins(通关版)

  1. 知识准备
    https://blog.csdn.net/tongxin_tongmeng/article/details/126991393
  2. 镜像下载
    https://hub.docker.com
    docker pull jenkins/jenkins:lts-jdk11
    5936c0193a2447129df62b19807c8d1c.png
    16616aa0dc1f45e5a1a54e0fbae53d13.png01a4e9fff5dd4a25ad95a0bfb1b9dd2a.png
  3. 镜像启动
    1.创建挂载目录/opt/jenkins_home并赋777权限
    mkdir -m 777 /opt/jenkins_home
    
    2.镜像ID挂载启动(访问端口9090)
    docker run -it -v /opt/jenkins_home:/var/jenkins_home -p 9090:8080 -p 50000:50000 --name jenkins_9090 镜像ID
    启动结束返回宿主机:Ctrl+P+Q
    
    3.防火墙开放端口9090
    firewall-cmd --zone=public --add-port=9090/tcp --permanent
    firewall-cmd --reload
    firewall-cmd --query-port=9090/tcp

    c2372900720d4fc8b5f6e3ac8fbea553.png
    c57ce5e3ed1c42ed8aad572d0f1c6bc0.png

  4. 容器安装jdk、git、nodejs、maven
    https://pan.baidu.com/s/120z12b0-clhcpxQ2G1mOZw?pwd=h4sg

    1.安装包上传宿主机/opt目录
    
    2.创建安装目录并赋权777
    mkdir -m 777 /opt/java /opt/git /opt/nodejs /opt/maven /opt/maven/repository
    
    3.安装包批量解压并删除
    cd /opt && ls *.tar.gz | xargs -n1 tar zxvf && rm -rf *.tar.gz
    
    4.安装包移入指定目录并重命名
    mv /opt/jdk-11.0.11 /opt/java/jdk_11.0.11
    mv /opt/git-2.37.3 /opt/git/git_2.37.3
    mv /opt/node-v16.14.2-linux-x64 /opt/nodejs/node_16.14.2
    mv /opt/apache-maven-3.8.6 /opt/maven/maven_3.8.6
    
    5.git依赖、编译、安装、卸载旧版本
    yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
    cd /opt/git/git_2.37.3 && make prefix=/opt/git/git_2.37.3 all && make prefix=/opt/git/git_2.37.3 install && yum remove -y git

    4d852791f0af4ea0bc7a8983ee90db22.png
    97b258a3a58345eba05f881e788cc749.png
    7065ca08253746848e8aad4b57e5ca8e.png

    1.安装包复制到容器/opt目录
    docker cp /opt/java 容器ID:/opt
    docker cp /opt/git 容器ID:/opt
    docker cp /opt/nodejs 容器ID:/opt
    docker cp /opt/maven 容器ID:/opt
    
    2.进入容器并为安装目录赋权777
    docker exec -it --user root 容器ID /bin/bash
    chmod -R 777 /opt/java
    chmod -R 777 /opt/git
    chmod -R 777 /opt/nodejs
    chmod -R 777 /opt/maven

    70cd2cbaa91c4a7ab7ceb2738636e405.png

    1.安装vim-->apt update && apt -y install vim
    编辑:Insert、不保存并退出:Esc-->:q!-->Enter、保存并退出:Esc-->:wq!-->Enter
    
    2.编辑/etc/profile-->vim /etc/profile
    # 设置java环境变量
    export JAVA_HOME=/opt/java/jdk_11.0.11
    export PATH=$PATH:$JAVA_HOME/bin
    export CLASSPATH=$JAVA_HOME/lib
    # 设置git环境变量
    export GIT_HOME=/opt/git/git_2.37.3
    export PATH=$PATH:$GIT_HOME/bin
    export PATH=$PATH:$GIT_HOME/libexec/git-core
    # 设置nodejs环境变量
    export NODE_HOME=/opt/nodejs/node_16.14.2
    export PATH=$PATH:$NODE_HOME/bin
    # 设置maven环境变量
    export MAVEN_HOME=/opt/maven/maven_3.8.6
    export PATH=$PATH:$MAVEN_HOME/bin
    
    3.编辑/root/.bashrc-->vim /root/.bashrc
    # 容器启动时自动加载/etc/profile
    source /etc/profile
    
    4.编辑maven配置文件-->vim /opt/maven/maven_3.8.6/conf/settings.xml
    <localRepository>/opt/maven/repository</localRepository>
    <mirrors>
    	<mirror>
    		<id>alimaven</id>
    		<name>aliyun maven</name>
    		<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    		<mirrorOf>central</mirrorOf>
    	</mirror>
    </mirrors>
    
    5.安装cnpm-->source /etc/profile && npm install -g cnpm -registry=https://registry.npm.taobao.org
    
    6.安装校验-->java -version && git --version && node -v && npm -v && mvn --version
    

    b36a8b7e70da4f158ecfa0680d3aef1a.png
    008bdd43db9d4522af02136d2da43cfa.png
    5e817f073ab4411c9f93b5a6feb390a1.png
    3b2d464edb904d758a77b0123f05def3.png
    0c5c0b083bcd4218b1274f6fb55c23e4.png
    2f2c5059163a4937934ab2076e965ccd.png

  5. Jenkins初始化
    http://192.168.1.239:9090
    a6205c86d7714134a1d891ad3bfa5353.png
    51f55f2aecf5487d9b26957263ed7d0e.png
    00380b9caf754852a42b03c2db44d9d6.png
    b29a39a9280647a39d77c4cca76b2196.png
    00e5f991495a421e87e635bc23c4f44f.png
    e2e5c871279446509488a1b3ecf8a6fc.png
    5e9897910726412e8bd3c885b076eda7.png

  6. Jenkins环境变量
    1.容器环境变量-->docker exec -it --user root 容器ID /bin/bash-->echo $PATH
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/java/jdk_11.0.11/bin:/opt/git/git_2.37.3/bin:/opt/git/git_2.37.3/libexec/git-core:/opt/nodejs/node_16.14.2/bin:/opt/maven/maven_3.8.6/bin
    
    2.Jenkins环境变量-->Dashboard>Manage Jenkins>System Configuration>Configure System>全局属性>环境变量-->path:容器环境变量

    027204e8691a40b6ac830e07dc895559.png
    e96c9b5b55b64d8fb68b968829723d50.png
    aa90b81875b6479fa4b30111b27a74d7.png

  7. Jenkins一键打包



    # 打印当前路径
    pwd
    # 前端配置文件覆盖
    cp ./trunk/jenkins/dev/index.html ./trunk/ant-design-vue-jeecg/public/index.html
    cp ./trunk/jenkins/dev/index.js ./trunk/ant-design-vue-jeecg/src/router/index.js
    cp ./trunk/jenkins/dev/request.js ./trunk/ant-design-vue-jeecg/src/utils/request.js
    # 后端配置文件覆盖
    # -------------------------------------------------------------------------------开发环境
    cp ./trunk/jenkins/dev/pom.xml ./trunk/jeecg-boot/jeecg-boot-module-system/pom.xml
    cp ./trunk/jenkins/dev/application.yml ./trunk/jeecg-boot/jeecg-boot-module-system/src/main/resources/application.yml
    cp ./trunk/jenkins/dev/application-dev.yml ./trunk/jeecg-boot/jeecg-boot-module-system/src/main/resources/application-dev.yml
    cp ./trunk/jenkins/dev/WebMvcConfiguration.java ./trunk/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/config/WebMvcConfiguration.java
    # -------------------------------------------------------------------------------生产环境
    # cp ./trunk/jenkins/prod/pom.xml ./trunk/jeecg-boot/jeecg-boot-module-system/pom.xml
    # cp ./trunk/jenkins/prod/application.yml ./trunk/jeecg-boot/jeecg-boot-module-system/src/main/resources/application.yml
    # cp ./trunk/jenkins/prod/WebMvcConfiguration.java ./trunk/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/config/WebMvcConfiguration.java
    # 前端安装、打包
    cd ./trunk/ant-design-vue-jeecg
    cnpm install
    npm run build
    cd ./../../
    # dist目录下文件复制到static目录
    cp -r ./trunk/ant-design-vue-jeecg/dist/* ./trunk/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/
    # 后端清理、编译、安装、打包
    cd ./trunk/jeecg-boot
    mvn clean
    mvn compile
    mvn install
    mvn package






  8. Jenkins镜像备份
    https://blog.csdn.net/tongxin_tongmeng/article/details/127118944

    1.挂载目录/opt/jenkins_home拷贝到容器/opt目录
    docker cp /opt/jenkins_home 容器ID:/opt
    注:不能拷贝到/var/jenkins_home,/var/jenkins_home为Jenkins容器默认的工作目录,
    Jenkins容器创建时该目录会被重新初始化,导致数据丢失,挂载目录备份到容器/opt目录后
    将容器打包为新镜像并被备份到阿里云,新镜像从阿里云仓库拉取后,先使用新镜像非挂载方
    式创建临时容器A,将备份数据从容器A拷贝回宿主机/opt,然后删除临时容器A,最后使用新
    镜像挂载 拷贝到宿主机的备份数据/opt/jenkins_home 创建容器B,这样创建的容器B数据和
    新镜像原始容器一致
    
    2.docker commit -a='作者' -m='备注' 容器ID 仓库名称:[TAG]
    注:容器打包为镜像前不可删除容器源镜像,否则无法进行镜像打包
    
    3.镜像备份阿里云
    docker login --username=童心同萌 registry.cn-hangzhou.aliyuncs.com
    docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/test_666/jenkins:[镜像版本号]
    docker push registry.cn-hangzhou.aliyuncs.com/test_666/jenkins:[镜像版本号]


  9. Jenkins备份镜像使用

    1.阿里云拉取镜像
    docker login --username=童心同萌 registry.cn-hangzhou.aliyuncs.com
    docker pull registry.cn-hangzhou.aliyuncs.com/test_666/jenkins:[镜像版本号]

    2.非挂载方式创建临时容器A
    docker run -it 镜像ID

    3.备份数据从临时容器A拷贝到宿主机/opt、挂载目录/opt/jenkins_home赋权777、删除临时容器A
    docker cp 容器ID:/opt/jenkins_home /opt && chmod -R 777 /opt/jenkins_home && docker rm -f 容器ID
    
    4.挂载备份数据/opt/jenkins_home创建容器B
    docker run -it -v /opt/jenkins_home:/var/jenkins_home -p 9090:8080 -p 50000:50000 --name my_jenkins_9090 镜像ID
    
    5.防火墙打开端口权限
    firewall-cmd --zone=public --add-port=9090/tcp --permanent
    firewall-cmd --zone=public --add-port=50000/tcp --permanent
    firewall-cmd --reload
    
    6.访问测试:192.168.1.239:9090-->备份数据已经恢复



  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

童心同萌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值