Docker运行Jenkins的一些采坑记录

  1. ERROR: Maven Home /usr/java/maven doesnt exist
    原因:docker启动Jenkins时没有指定Maven Home或者Maven Home路径设置不正确
docker run -u root  
--rm     #(可选)关闭时自动删除Docker容器
-d   #(可选)在后台运行容器(即“分离”模式)并输出容器ID。如果您不指定此选项, 则在终端窗口中输出正在运行的此容器的Docker日志。
-p 9999:8080  #容器的端口8080到主机上的端口9999。 前面是主机的端口,后面是容器的端口
-p 50000:50000  #将容器的端口50000 映射到主机上的端口50000(代理端口)
-v jenkins-data:/var/jenkins_home #映射在容器中的`/var/jenkins_home` 目录到具有名字 `jenkins-data` 的[volume]
-v /var/run/docker.sock:/var/run/docker.sock #容器与Docker守护进程通信
-v /usr/java/maven:/usr/local/maven # 将宿主机的maven环境变量/usr/java/maven映射到容器的/usr/local/maven,jenkins里配置maven时地址填写/usr/local/maven
-v /etc/localtime:/etc/localtime:ro #设置容器时间与宿主机一致
--name jenkins #设置别名
jenkinsci/blueocean 
  1. Cannot run program "/usr/local/jdk/bin/java" (in directory "/var/jenkins_home/workspace/Ccloud预生产"): error=2, No such file or directory
    原因:/usr/local/jdk/bin/java找不到或者不存在
    解决办法:删掉jenkins全局配置里的JDK配置。docker jenkins 是一个专用来做部署的容器,自带Java,不需要额外配置JDK
  2. jenkins时间与北京时间不一致(早8个小时)的解决办法

docker启动jenkins时加上-e JAVA_OPTS=-Duser.timezone=Asia/Shanghai
docker run ... -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai

完整命令:
docker run -u root -d -p 9999:8080 -p 50000:50000 -v jenkins-data:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -v /usr/java/maven:/usr/local/maven -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai --name jenkins jenkinsci/blueocean
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容