• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

docker弄一个包含maven的jenkins镜像,并运行git项目

武飞扬头像
小池先生
帮助1

1.宿主机创建jenkinstest目录把maven包拷贝到宿主机上

学新通

注意这里的maven里面是maven文件夹,为之后拷贝到容器中用 copy功能只会把当前目录下的文件复制过去 当前目录不会一起复制

学新通

编辑Dockerfile文件

from jenkins/jenkins
COPY  maven /opt/
COPY settings.xml /opt/apache-maven-3.5.2/conf/
ENV PATH /opt/apache-maven-3.5.2/bin:$PATH

这里注意COPY的参数设置写法

修改settings的仓库配置内容 并一起放到jenkinstest目录下,

这里的仓库地址配置和jenkins挂载地址一致,这样可以少配置一个挂载目录,也可以改成其他位置,在启动容器时映射这个目录

<localRepository>/var/jenkins_home/repository</localRepository>

学新通

确保maven,setting.xml 、Dockerfile三个文件或者文件夹在同一个目录下后执行

docker build -t jenkins-maven:chijs .

运行容器

8081端口是应用的端口也要映射

docker run  -d -p 10240:8080 -p 10241:50000 -p 8081:8081  -v /var/jenkins_mount:/var/jenkins_home -v /etc/localtime:/etc/localtime  --name chijsjenkins jenkins-maven:chijs

学新通

学新通

 注意jenkins目录权限问题 看这个文章

Docker 快速安装Jenkins完美教程 (亲测采坑后详细步骤) - 爱码网

学新通

基于docker运行的jenkins并配置maven - it610.comp

jenkins中配置 

学新通

 学新通

进入容器发现有权限问题 

学新通

这边点到console output 看到日志也报错了

学新通

查了下跟权限的用户组有关

学新通

 学新通

jenkins的权限用户id是1000  而 宿主机的权限用户id是0

因为是复制到容器的方式 所以会把权限id一起带过去 需要修改下文件的权限
 

用root用户登录jenkins

 docker exec -u root -it 3b4e2465b61d /bin/bash

进入容器的maven bin目录 执行

chmod x mvn

 学新通

发现jenkins启动后还是报错

学新通

学新通

-x 打debug信息出来查看

跟项目的一个properties文件有关

 学新通

 学新通

发现这个文件是GBK编码

学新通

系统部署是用utf-8格式解析文件

学新通

所以中文就会报错

 解决方法 1 直接把配置文件改成utf-8格式

2.把中文转换下

用jdk下的工具

学新通

到这里只是构建完成 

构建命令改成

-e -N -DskipTests -Dmaven.test.skip=true clean package

学新通

 到这里只是构建项目 还得运行项目 要用到shell命令


DEOMO_PATH=/var/jenkins_home/workspace/test/target/demo-0.0.1-SNAPSHOT

chmod 755 $DEOMO_PATH.jar

nohup  java  -jar $DEOMO_PATH.jar &    

&符号是后台执行 

学新通

执行脚本参考文章

基于Docker Jenkins实现自动化部署 - 明天,你好啊 - 博客园

发现还有报错

学新通

 解决办法

jekins的全局配置中加入环境变量

学新通

 BUILD_ID     dontKillMe

配置完可能需要重启jenkins  执行 jenkins地址/restart

最后构建成功

运行项目  这里8081端口是宿主机端口  

学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhibahhg
系列文章
更多 icon
同类精品
更多 icon
继续加载