docker从零部署jenkins保姆级教程(下)

这篇具有很好参考价值的文章主要介绍了docker从零部署jenkins保姆级教程(下)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

上一篇文章,我们完成了以下工作。
1)、docker部署jenkins
2)、建立第一个jenkins job
3)、通过jenkins job自动编译构建我们的github项目
上面所做的3个工作,其实都是为了这一篇文章打基础,不管是部署docker还是部署jenkins,我们最终的目的还是部署我们的项目,让项目跑起来,让流量进来,这才是一个项目的真正意义所在。
这一篇文章,我们就要让我们的项目部署到docker中,跑起来。

1、编写项目的Dockerfile

在我们项目的根目录,增加一个Dockerfile文件,文件名称就是:Dockerfile,注意:不要带任何文件名后缀。

//1、基础镜像使用java:openjdk-8u111
FROM java:openjdk-8u111
//2、本地docker工作目录/var/lib/docker映射容器的/tmp目录
VOLUME /tmp
//3、将本地target路径下的testJenkinsDocker.jar包改为app.jar
ADD target/testJenkinsDocker.jar app.jar
//4、容器的访问端口是12000
EXPOSE 12000
//5、执行java -jar命令在容器中启动项目
ENTRYPOINT ["java","-jar","/app.jar"]

将来会让jenkins根据这个Dockerfile构建我们的项目镜像

2、jenkins增加镜像构建shell脚本

增加这个shell脚本的目的是:让jenkins根据我们编写的项目Dockerfile构建项目镜像,然后根据项目镜像创建项目容器,运行项目。
在流水线的操作页面点击configure。
docker从零部署jenkins保姆级教程(下),docker,jenkins,容器
然后拉到最下面,增加一个build step
docker从零部署jenkins保姆级教程(下),docker,jenkins,容器
填入如下的内容,(注意把注释删除)

#1、进入流水线的工作目录,这个docker_test_job是我们上一篇建立的job,这个job的作用是:自动编译构建我们的github项目,构建的结果就会发布到这个目录
cd /var/jenkins_home/workspace/docker_test_job
#2、根据Dockerfile构建一个镜像。最后的那个"."的意思是使用当前目录的Dockerfile构建
docker build -t test_jenkins_docker .
#3、这条docker run命令上一篇介绍过了,这里不再赘述
docker run -d -p 12000:12000 --name testJenkinsDocker test_jenkins_docker:latest

以上脚本的主要作用:
根据我们编写的项目Dockerfile构建一个项目镜像,根据这个项目镜像创建一个项目容器并运行。

3、编写一个简单的controller验证功能

这个就不写了,自己随便写一个,浏览器访问验证一下

4、报错解决

4.1、docker not found

4.1.1、错误简述

docker从零部署jenkins保姆级教程(下),docker,jenkins,容器

这个报错是jenkins在构建项目,执行脚本的时候报的,报错很明显,jenkins容器中并没有docker,所以执行失败。没有docker,我们装一个docker不就行了吗?没这么简单,我们可以登录一下jenkins的容器。可以看到容器的登录用户是jenkins,不是root用户,jenkins用户的权限不支持你安装docker。

4.1.2 错误解决

我在这个问题上卡了好一阵子,尝试了很多方法都不行,最终参考了国外老哥写的一篇文章,解决了这个问题。原文地址
这个老哥的解决方案很简单,进入容器不是root用户,我们进入容器是root用户不就可以了吗?所以,不直接使用docker hub上下载下来的jenkins镜像了,而是自己编写Dockerfile构建一个jenkins镜像,Dockerfile内容如下:

#1、基础镜像还是使用我们第一篇文章中的jenkins/jenkins:jdk11
FROM jenkins/jenkins:jdk11
#2、容器使用root用户
USER root
#3、基础镜像基于debian linux套件,所以下载软件使用apt-get命令
RUN apt-get update
#4、在容器中安装docker
RUN curl -sSL https://get.docker.com/ | sh

可以看到,我们的容器用户是root,然后在容器中安装了docker

4.2、no such file or directory

4.2.1、错误简述

docker从零部署jenkins保姆级教程(下),docker,jenkins,容器
这个错误很明显,就是jenkins在执行脚本构建项目镜像的时候找不到testJenkinsDocker-1.0-SNAPSHOT.jar文件

4.2.1、错误解决

我们可以到jenkins对应的流水线目录看一下,到底有没有testJenkinsDocker-1.0-SNAPSHOT.jar呢。我们这个流水线名称是:docker_test_job,所以对应的流水线目录是:
/var/jenkins_home/workspace/docker_test_job,进到这个目录中,看看jenkins打出来的jar包名字是不是:testJenkinsDocker-1.0-SNAPSHOT.jar,如果不是,要修改项目中的Dockerfile文件,让jar包名字保持一致

4.3、The container name xxx is already in use by container

4.3.1、错误简述

docker从零部署jenkins保姆级教程(下),docker,jenkins,容器

已经存在相同名称的镜像了,所以docker build再次构建项目名称的镜像会报错。

4.3.2、错误解决

镜像已存在,我们直接把已存在的镜像删除,所以在jenkins执行脚本中的第一行命令下增加如下命令:

#停止容器
docker stop testJenkinsDocker
#删除容器
docker rm testJenkinsDocker
#删除镜像
docker rmi test_jenkins_docker:latest

最终的脚本内容

cd /var/jenkins_home/workspace/docker_test_job
docker stop testJenkinsDocker
docker rm testJenkinsDocker
docker rmi test_jenkins_docker:latest
docker build -t test_jenkins_docker .
docker run -d -p 12000:12000 --name testJenkinsDocker test_jenkins_docker:latest

再次构建,就可以了。这里我觉着肯定不应该这么麻烦,但是我没有找到更好的方法,如果有哪位大佬有更优的脚本,希望指导一下。

5、附录

附录里想继续说下/var/jenkins_home/workspace/docker_test_job这个目录,这个目录是jenkins的流水线目录,其中存储着我们的docker_test_job流水线的信息,这个目录下有啥呢?我们以我们创建的docker_test_job举例:
docker从零部署jenkins保姆级教程(下),docker,jenkins,容器
其实就是我们的项目根目录,看到这里其实就能理解jenkins中,我们的脚本为啥第一行是:
cd /var/jenkins_home/workspace/docker_test_job
这相当于进入了我们项目的根目录。文章来源地址https://www.toymoban.com/news/detail-697052.html

到了这里,关于docker从零部署jenkins保姆级教程(下)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ubuntu系统安装配置gitlab+Jenkins+发布持续集成持续部署保姆级教程。

    1、服务器环境 名称                              系统                                   IP                              备注 gitlab               ubuntu20.04.2图形化          192.168.26.130        要求有6G的内存 Jenkins           Ubuntu20.04.2图形化          1

    2024年04月26日
    浏览(47)
  • Jenkins+GitLab+Docker搭建前端自动化构建镜像容器部署

    前言 🚀 需提前安装环境及知识点: 1、Docker搭建及基础操作 2、DockerFile文件描述 3、Jenkins搭建及基础点 🚀 目的: 将我们的前端项目打包成一个镜像容器并自动发布部署,可供随时pull访问 1、在当前项目的根目录创建Dockerfile文件并写入如下代码: 代码片段详细描述: 注意

    2024年02月05日
    浏览(74)
  • 【SpringBoot】| (保姆级)部署SpringBoot项目到docker容器Ⅱ | JDK11

    作者:狮子也疯狂 专栏:《spring开发》 坚持做好每一步,幸运之神自然会驾凌在你的身上 最近在帮一个小伙伴弄一个毕设,项目写好了,需要部署一下。简单记录一下步骤! 大致过程如下: 本地将SpringBoot应用打包成jar——本地编写好Dockerfile( 或者在服务器上边写,这里

    2023年04月15日
    浏览(42)
  • 2023全网最细最全保姆级gitlab+Jenkins+maven自动化部署springboot项目教程

    如果没有Linux基础请仔细看好每一个步骤,避免出错,从0到1带你搭建自动化部署环境,包括服务器安装,自动化部署所需各类软件安装配置,详细贴出每一步,不断步骤,让你一次搭建部署完成,希望这篇文章能给大家带来一定的帮助,话不多说开始整 2.0 CentOs安装 2.0.1 下载VM虚拟机 我直

    2024年02月08日
    浏览(60)
  • Jenkins+GitLab+Docker搭建前端自动化构建镜像容器部署(无本地证书,映射证书)

    前言 🚀 需提前安装环境及知识点: 1、Docker搭建及基础操作 2、DockerFile文件描述 3、Jenkins搭建及基础点 🚀 目的: 将我们的前端项目打包成一个镜像容器并自动发布部署,可供随时pull访问 1、在当前项目的根目录创建Dockerfile文件并写入如下代码: 代码片段详细描述: 注意

    2024年02月15日
    浏览(60)
  • K8S历险记-从零开始kubeadm单机安装部署k8s保姆级教程

    1.查看系统版本信息以及修改配置信息 1.1 查看cpu信息 k8s安装至少需要2核2G的环境,否则会安装失败 1.2 安装k8s时,临时关闭swap ,如果不关闭在执行kubeadm部分命令会报错 1.3 安装k8s时,可以临时关闭selinux,减少额外配置 1.4 关闭防火墙 1.5 设置网桥参数 1.6 修改hosts文件

    2024年02月08日
    浏览(54)
  • 保姆教程 Docker 部署微服务项目

    大家好,我是奇兵。 文章比较长,请耐心看完! 项目上线是每位学编程同学必须掌握的基本技能。之前我已经给大家分享过很多种上线单体项目的方法了,今天再出一期微服务项目的部署教程,用一种最简单的方法,带大家轻松部署微服务项目。 开始之前,先做个小调研啊

    2024年04月09日
    浏览(58)
  • Docker 自动化部署(保姆级教程)

    jenkins介绍 jenkins部署Vue项目 docker安装Jenkins Jenkins:是一个开源的、提供友好操作界面的持续集成(CI)工具,主要用于持续、自动的构建的一些定时执行的任务。Jenkins用Java语言编写,可在Tomcat等流行的容器中运行,也可独立运行。 开发的步骤: 开发者会将代码上传到版本库中

    2024年02月07日
    浏览(48)
  • 【Docker】部署若依项目——保姆级教程亲测

    目录 1.部署后端 步骤1:修改mysql地址 步骤2:修改redis地址 步骤3:修改后端端口 步骤4:将项目打包成Jar包 ​编辑 步骤5:编写Dockerfile 步骤6:制作镜像 启动容器  步骤7:访问 2.前端打包 步骤1:修改端口 步骤2:修改后端请求地址 步骤3:打包 ​编辑 步骤4:前端打包的

    2024年02月22日
    浏览(48)
  • 【使用Idea创建一键部署项目到Docker(保姆级教程)】

    Hello今天给大家带来如何一键部署项目到docker,什么事docker呢如果还有不会的建议先学习一下,这里仅整合资源, 参考原文 *这里注意如果你是新服务器,请先安装yum源 如果出现版本号说明成功了 在 ExecStart=/usr/bin/dockerd 追加 -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock 重启 Docker 让配置

    2024年02月09日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包