Docker 安装 Jenkins 并部署 Maven 项目 | 您所在的位置:网站首页 › harbor启动成功无法访问网页 › Docker 安装 Jenkins 并部署 Maven 项目 |
一、前言
在开始之前,我们需要保证系统中已经安装了Docker、JDK、Maven。 二、Docker 拉取镜像我这里使用的是 2.344 版本的 Jenkins,拉取命令如下: docker pull jenkins/jenkins:2.344需要稍微等一会,等待拉取完成。 镜像下载完成后,我们可以通过如下命令查看我们 docker 中的所有镜像。 docker images
下载镜像成功后,我们需要用此镜像运行一个容器,命令如下: docker run \ -d \ --name jenkins \ -u 0 \ -p 9999:8080 \ -p 8888:8888 \ -p 50000:50000 \ -v /usr/local/java/jdk-11.0.18:/usr/local/java/jdk-11.0.18 \ -v /usr/local/maven/apache-maven-3.6.1:/usr/local/maven/apache-maven-3.6.1 \ -v /home/jenkins_home:/home/jenkins_home \ jenkins/jenkins:2.344命令解释: -d:在后台运行--name:为我们当前运行的容器取一个名称-u:以某个用户的身份启动(此处的 0 代表是 root 用户,而如果不加该命令,jenkins 启动会默认以 1000 的用户 jenkins 启动,这样会导致某些文件夹的读写权限不足问题,因此建议加上 -u 0 命令启动容器)p:指定映射的IP和端口,前者为本地系统的端口号,后者为容器内部的端口号。以 -p 9999:8888 举例,8888为容器内的端口号,而9999为容器内端口号映射到本地系统(容器外部)的端口,即我们访问本地系统的9999端口,实际会映射到容器内部的8888端口上。此处开放8888端口是因为后面构建项目时,项目的端口也为8888,避免重新给容器开放端口映射。-v:绑定数据卷,拿 -v /usr/local/java/jdk-11.0.18:/usr/local/java/jdk-11.0.18 举例:表示将本地系统的 /usr/local/java/jdk-11.0.18 映射到 容器内部的 /usr/local/java/jdk-11.0.18。最后的 jenkins/jenkins:2.344 表示当前启动的容器是基于哪个镜像的,语法 Repository:Tag,如果当前的镜像是唯一的,也可以不用加Tag。 此处我将本地系统的 jdk11 和 maven 都映射到了 当前启动的容器中,而路径我为了便于统一(容器内的路径可以随便自定义),容器内的路径设置为和容器外一样的路径。 /usr/local/java/jdk-11.0.18 路径为本地系统JAVA_HOME 配置的路径,如果忘记了配置的路径,可以通过如下命令查看: which java
/usr/local/maven/apache-maven-3.6.1 路径为本地系统JAVA_HOME 配置的路径,如果忘记了配置的路径,可以通过如下命令查看: which mvn
当我们输入上述的 docker run 命令后,会生成一个容器,我们可以通过命令查看当前启动的容器: docker ps
如果我们的容器启动成功,那么我们直接访问 本地的ip:9999 即可查看到当前页面。 进入容器命令: docker exec -it 容器id/容器名称 bash你可以输入的容器id或者容器名称,我一般习惯输入容器名称,如果你的 docker run 命令和我一样,那么可以直接复制如下命令进入容器内部: docker exec -it jenkins bash成功进入容器后,我们在输入如下命令查看初始密码: cat /var/jenkins_home/secrets/initialAdminPassword我们复制打印出来的密码,粘贴到网页,点击“继续”,进行下一步操作。 自定义Jenkins
这里可以输入你想创建的账号,输入完毕后,点击保存并完成。 配置实例这里默认即可,点击保存并完成。 Jenkins 已就绪
Maven插件默认是不会给我们安装的,因此我们需要自己安装。 首先点击左侧 “Manage Jenkins”,然后找到 “Manage Plugins”并点击, 然后点击“可选插件”并输入 maven,找到如下插件 Maven Integration plugin,点击下面的 Install without restart。 首先点击左侧 “Manage Jenkins”,然后找到 “Global Tool Configuration”并点击,
点击 “JDK安装” 输入别名及JAVA_HOME,这里的JAVA_HOME对应的是我们docker容器内部的JAVA_HOME,而我们在第三步将运行容器,将 java 映射的地址为 /usr/local/java/jdk-11.0.18(根据你 docker run 时的配置填写),因此这里直接上即可,如图: /usr/local/java/jdk-11.0.18Git会在我们自定义Jenkins时安装插件的时候,自动帮我们安装,此处我们无需填写,默认即可。 同理,此处需要填写maven的别名和MAVEN_HOME.
我们填上即可。 最后我们点击应用,然后点击保存即可。 六、部署Maven项目首先,回到Jenkins首页,点击“+新建任务”,如图: 新建Maven项目输入我们项目的名称,点击构建一个Maven项目,然后点击确定,如图: 首先配置我们的Git仓库地址,此处我用的是自己开源的项目,所以无需填写凭证,如果大家的项目需要凭证,可以自行添加:
接下来就是配置Maven,对项目进行打包,Root POM 不用修改,就用 pom.xml,而 Goals and options 我们填写: clean install -Dmaven.test.skip=true
查看控制台输出: 这样就代表成功了,接下来就开始启动项目了,点击项目,打开左侧的配置,依次选择 Post Steps -> Add post build steps -> 执行shell
注意:我这里是在docker容器内部运行的java项目,大部分实际情况是需要通过jenkins连接到其他服务器去部署项目。大致的流程为: 将容器内的jar包拷贝到目标服务器切换目录,杀掉当前正在运行的项目启动项目我这里只做最基本的部署演示,因此就不弄那么麻烦。同时我这里项目的端口号为8888,我在创建容器,使用 docker run 时,已经将容器内的8888端口映射到宿主机的8888端口了。 写好之后直接应用、保存。然后重新构建项目,这里就能够直接访问8888端口了。 |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |