持续集成和部署(Jenkins)Docker安装配置及常见问题解决

Docker方式安装

1. 安装docker

https://www.yuque.com/chileshui/rt4ba1/gdqelw#21cb4f18

2. 安装JDK、Maven

\1) 解压:

java:

tar -zvxf jdk-17_linux-x64_bin.tar.gz

maven:

tar -zvxf apache-maven-3.5.3-bin.tar.gz

设置maven settings.xml文件

创建repository地址。

\2) 配置环境变量 vim /etc/profile

export JAVA_HOME=/usr/local/java/jdk-17.0.4.1
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export MAVEN_HOME=/usr/local/java/maven/apache-maven-3.5.3
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin

\3) source /etc/profile

3. 持久化目录授权

groupadd jenkins
useradd jenkins -g jenkins
chown -R  jenkins:jenkins /data/jenkins

4. 启动jenkins

#/bin/bash
docker ps -a | grep jenkins | awk '{print $1}'|xargs docker stop
docker ps -a | grep jenkins | awk '{print $1}'|xargs docker rm
docker run -d --name jenkins -p 8082:8080 -p 50001:50000 -v /data/jenkins/:/var/jenkins_home -v /usr/local/java/maven/apache-maven-3.5.3:/usr/local/maven -v /usr/local/java/maven/repository:/usr/local/repository -v /var/run/docker.sock:/var/run/docker.sock -v /usr/local/java/jdk-17.0.4.1:/usr/local/jdk -v /usr/local/java/jdk1.8.0_171:/usr/local/jdk1.8 -v /etc/localtime:/etc/localtime --restart=always --env JAVA_HOME=/usr/local/jdk jenkins/jenkins

注意事项:

  • -v /data/jenkins/:/var/jenkins_home

持久化。

  • -v /usr/local/java/maven/apache-maven-3.5.3:/usr/local/maven

maven使用本地配置。

  • -v /usr/local/java/maven/repository:****/usr/local/repository

maven仓库设置在本地,注意/usr/local/java/maven/apache-maven-3.5.3/conf/settings.xml设置仓库地址为容器内部地址。

<localRepository>/usr/local/repository</localRepository>
  • -v /usr/local/java/jdk-17.0.4.1:/usr/local/jdk

配置jenkins启动jdk,高版本jenkins,jdk版本也需要升级,此处使用17版。

  • -v /usr/local/java/jdk1.8.0_171:/usr/local/jdk1.8

配置build服务的适用的jdk,方便后续操作。

5. Jenkins页面配置

全局工具配置–>maven

img

全局工具配置–>JDK

img

git全局凭据配置

在这里插入图片描述

问题

stderr: remote: HTTP Basic: Access denied

ERROR: Error fetching remote repo 'origin'
hudson.plugins.git.GitException: Failed to fetch from http://XXXXX.XXXX.com/root/XX-XX.git
	at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:1003)
	at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1244)
	at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1308)
	at org.jenkinsci.plugins.workflow.steps.scm.SCMStep.checkout(SCMStep.java:129)
	at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:97)
	at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:84)
	at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: hudson.plugins.git.GitException: Command "git fetch --tags --force --progress -- http://XXXXX.XXXX.com/root/XX-XX.git +refs/heads/*:refs/remotes/origin/*" returned status code 128:
stdout: 
stderr: remote: HTTP Basic: Access denied
fatal: Authentication failed for 'http://XXXXX.XXXX.com/root/XX-XX.git/'

在这里插入图片描述

解决:

pipeline凭证ID写错了

jenkins执行job时间与服务器不一致

解决:

系统管理—>脚本命令行—>执行命令

System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai')

img

withMaven

安装 Pipeline Maven Integration Plugin

img

touch:cannot touch ‘/var/jenkins_home/copy_reference_file.log’:Permission denied

touch:cannot touch '/var/jenkins_home/copy_reference_file.log':Permission denied
Can not write to /var/jenkins_home/copy_reference_file.log.Wrong volume permissions?

jenkins权限不足

解决:

/data/jenkins为持久化目录,为目录授权

groupadd jenkins
useradd jenkins -g jenkins
chown -R  jenkins:jenkins /data/jenkins

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值