jenkins与主机共享命令
2023年9月25日大约 2 分钟
jenkins与主机通过挂载的方式共享
如果是没有启动的容器可以通过docker run 时添加挂载
docker run -itd -p 9090:8080 -p 50000:50000 --name jenkins --privileged=true -v /usr/local/apache-maven-3.6.3:/usr/local/maven -v /usr/bin/git:/usr/local/git -v /usr/local/java/jdk1.8:/usr/local/java/jdk1.8 -v /home/jenkins:/var/jenkins_home jenkinsci/blueocean ----------------------------------- docker配合jenkins docker安装jenkins配置maven1
共享docker命令
# 找到容器id
# docker container inspect myjenkins | grep "Id"
"Id": "cd1580470f57faf9426c6ce360f7ef22053ff92bf22b1d624d4ab86bd3bd22fd",
# 转换配置文件
# cd /var/lib/docker/containers/cd1580470f57faf9426c6ce360f7ef22053ff92bf22b1d624d4ab86bd3bd22fd
# jq . config.v2.json > tmp.json
# 停止docker 否则转换无效
# systemctl stop docker.service
#根据格式添加MountPoint字段
# vi tmp.json
# 这是一个标准的json片段
```
"/usr/bin/docker": {
"Source": "/usr/bin/docker",
"Destination": "/usr/bin/docker",
"RW": true,
"Name": "",
"Driver": "",
"Type": "bind",
"Propagation": "rprivate",
"Spec": {
"Type": "bind",
"Source": "/usr/bin/docker",
"Target": "/usr/bin/docker"
},
"SkipMountpointCreation": false
},
"/var/run/docker.sock": {
"Source": "/var/run/docker.sock",
"Destination": "/var/run/docker.sock",
"RW": true,
"Name": "",
"Driver": "",
"Type": "bind",
"Propagation": "rprivate",
"Spec": {
"Type": "bind",
"Source": "/var/run/docker.sock",
"Target": "/var/run/docker.sock"
},
"SkipMountpointCreation": false
},
```
jq -c . tmp.json > config.v2.json
# 重启docker生效
systemctl start docker.service
共享maven命令
主机安装maven
# 解压文件,统一安装路径,将源码安装的放到一个目录下面
mkdir -p /opt/maven/
tar -xvf apache-maven-3.9.4-bin.tar.gz
mv apache-maven-3.9.4 /opt/maven/
# 添加全局变量
vi /etc/profile
# 结尾添加下面的命令
MAVEN_HOME=/opt/maven/apache-maven-3.9.4
export PATH=${MAVEN_HOME}/bin:${PATH}
# 重载配置
source /etc/profile
挂载命令
# 找到容器id
# docker container inspect myjenkins | grep "Id"
"Id": "cd1580470f57faf9426c6ce360f7ef22053ff92bf22b1d624d4ab86bd3bd22fd",
# 转换配置文件
# cd /var/lib/docker/containers/cd1580470f57faf9426c6ce360f7ef22053ff92bf22b1d624d4ab86bd3bd22fd
# jq . config.v2.json > tmp.json
# 停止docker 否则转换无效
# systemctl stop docker.service
#根据格式添加MountPoint字段
# vi tmp.json
# 这是一个标准的json片段
```
"/usr/local/maven": {
"Source": "/opt/maven/apache-maven-3.9.4",
"Destination": "/usr/local/maven",
"RW": true,
"Name": "",
"Driver": "",
"Type": "bind",
"Propagation": "rprivate",
"Spec": {
"Type": "bind",
"Source": "/opt/maven/apache-maven-3.9.4",
"Target": "/usr/local/maven"
},
"SkipMountpointCreation": false
}
```
jq -c . tmp.json > config.v2.json
# 重启docker生效
systemctl start docker.service
主机共享java
下载对应版本的jdk
Index of /Adoptium/19/jdk/x64/linux/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
image-20230925140706560
安装
# 将下载好的压缩包上传
# 解压
tar -xvf jdk-21_linux-aarch64_bin.tar.gz
# 放到对应的目录
mkdir -p /opt/java
mv jdk8u382-b05 jdk
mv jdk /opt/java/
# 配置环境变量
export JAVA_HOME=/opt/java/jdk/
export CLASSPATH=.:%JAVA_HOME%\lib\dt.jar:%JAVA_HOME%\lib\tools.jar:
export PATH=$PATH:$JAVA_HOME/bin
通过挂载共享,方法类似上面的
注意
如果是jenkisn容器,默认是安装了java,如果向使用某个版本的jdk,首先要卸载docker环境下的jdk
# 找到容器id
# docker container inspect myjenkins | grep "Id"
"Id": "cd1580470f57faf9426c6ce360f7ef22053ff92bf22b1d624d4ab86bd3bd22fd",
# 转换配置文件
# cd /var/lib/docker/containers/cd1580470f57faf9426c6ce360f7ef22053ff92bf22b1d624d4ab86bd3bd22fd
# jq . config.v2.json > tmp.json
# 停止docker 否则转换无效
# systemctl stop docker.service
#根据格式添加MountPoint字段
# vi tmp.json
# 这是一个标准的json片段
```
"/usr/local/jdk": {
"Source": "/opt/java/jdk",
"Destination": "/usr/local/jdk",
"RW": true,
"Name": "",
"Driver": "",
"Type": "bind",
"Propagation": "rprivate",
"Spec": {
"Type": "bind",
"Source": "/opt/java/jdk",
"Target": "/usr/local/jdk"
},
"SkipMountpointCreation": false
},
```
jq -c . tmp.json > config.v2.json
# 重启docker生效
systemctl start docker.service
解决jenkins通过docker上传hurbor报错
- 宿主机上修改docker.service
# 9. 解决docker登录harbor连接问题
vim /usr/lib/systemd/system/docker.service
```
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry=192.168.0.11:85
# 添加--insecure-registry参数,值为harborIp:Port
```
# 10.重启docker
systemctl daemon-reload
systemctl restart docker
- 挂载到docker-jenkins方法同上