安装Jenkins(Docker方式)

653 阅读2分钟

一、安装Jenkins

简单安装

指令:-p 5050:8080
将主机5050端口映射到容器8080端口

指令:-v jenkins-data:/var/jenkins_hom
将数据卷jenkins-data挂载到容器内/var/jenkins_home

### docker run -d -p 5050:8080 -p 50000:50000 -v jenkins-data:/var/jenkins_home jenkins/jenkins:lts-jdk11

docker run -d \
  -p 5050:8080 \ 
  -p 50000:50000 \ 
  -v jenkins-data:/var/jenkins_home \
  jenkins/jenkins:lts-jdk11

挂载相关数据卷

由于使用Docker方式运行Jenkins,在后续的Jenkins使用中需要考虑maven($MAVEN_HOME)、jdk($JAVA_HOME)等配置,如果是引用自宿主机中,那么安装时需要同时考虑挂载相关的数据卷。

### docker run -d -p 5050:8080 -p 50000:50000 -v jenkins-data:/var/jenkins_home -v /usr/local/apache-maven-3.8.4:/var/maven -v /Users/wei/.m2:/var/.m2 -v /Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home:/var/jdk --name=jenkins jenkins/jenkins:lts-jdk11

docker run -d \
  -p 5050:8080 \
  -p 50000:50000 \
  -v jenkins-data:/var/jenkins_home \
  -v /usr/local/apache-maven-3.8.4:/var/maven \
  -v /Users/wei/.m2:/var/.m2
  -v /Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home:/var/jdk
  --name jenkins \
  jenkins/jenkins:lts-jdk11

指令:-v /usr/local/apache-maven-3.8.4:/var/maven
把宿主机的$MAVEN_HOME目录挂载到jenkins容器内/var/maven

指令:/Users/wei/.m2:/var/.m2
把宿主机的maven本地仓库目录挂载到jenkins容器内/var/.m2

指令:/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home:/var/jdk
把宿主机的$JAVA_HOME目录挂载到jenkins容器内/var/jdk
*这一条是非必需的,因为Jenkins容器内已有JDK
*注意如果使用Mac OS ARM64 平台上的JDK会因架构不同而不可用

Mac OS上的挂载设置

Mac OS上使用Docker Desktop运行docker命令在挂载时可能会遇到无法挂载的问题:

docker: Error response from daemon: Mounts denied: 
The path /Users/wei/.m2 is not shared from the host and is not known to Docker.
You can configure shared paths from Docker -> Preferences... -> Resources -> File Sharing.
See https://docs.docker.com/desktop/mac for more info.

Mac OS上使用Docker Desktop需要配置共享文件:
Settings - Resource - FILE SHARING,之后手动添加目录
*配置后新运行的容器才生效 截屏2022-01-13 16.43.06.png

二、解锁Jenkins

浏览器访问:localhost:5050

访问Jenkins之后会要求解锁,在容器内目录:/var/jenkins_home/secrets/initialAdminPassword image.png

访问Jenkins主目录

可以通过主机的挂载目录访问,也可以通过进入容器内访问
先通过命令执行容器:docker exec -it jenkins bash
查看初始化密码:cat /var/jenkins_home/secrets /initialAdminPassword

三、安装插件

可选择安装推荐的插件
也可以选择自定义安装,在推荐的插件上按需选择;推荐勾选Publish Over SSH,SSH image.png

四、创建管理员

创建管理员或以admin账户继续 image.png

五、实例配置

按默认配置 image.png

六、Jenkins容器主机用户权限

进入到Jenkins容器主机内,默认用户是jenkins,由于jenkins用户权限的问题,会遇到权限拒绝问题

### 权限拒绝
jenkins@2dae7790cf89:/$ mkdir /data
mkdir: cannot create directory ‘/data’: Permission denied

### 未知root用户密码
jenkins@2dae7790cf89:/$ su
Password: 
su: Authentication failure

### 找不到sudo命令
jenkins@2dae7790cf89:/$ sudo passwd root
bash: sudo: command not found

此时可以通过root用户进入Jenkins容器内

docker exec -it --user root jenkins bash

七、参考

[1] 安装Jenkins:www.jenkins.io/zh/doc/book…