Jenkins部署:
//下载镜像
docker pull jenkins/jenkins
//开放指定的防火墙端口
firewall-cmd --zone=public --add-port=8000/tcp --permanent
//创建本地挂载目录
mkdir -p /home/docker/jenkins
//需要修改下目录权限, 因为当映射本地数据卷时,/home/docker/jenkins目录的拥有者为root用户,而容器中jenkins user的uid为1000
执行如下命令即可:
chown -R 1000:1000 /home/docker/jenkins
//运行启动Jenkins
docker run -d -p 8000:8080 -v /home/docker/jenkins:/var/jenkins_home --name jenkins --restart=always jenkins/jenkins
示例:docker run --privileged -id -p 9999:8080 --name=jenkins05 myjenkins:3.0 /usr/sbin/init
docker run -d -p 8000:8080 -p 50000:50000 -v /home/jenkins:/var/jenkins_home --name jenkins --restart always --privileged=true -u root jenkins
查看密码:docker exec jenkins tail /var/jenkins_home/secrets/initialAdminPassword
-p : 映射端口,宿主机端口:容器端口
-v : 挂载,宿主机目录:容器目录
--name : 自定义容器名
-u : 权限用户名
--privileged : 使用该参数,container内的root拥有真正的root权限,否则,container(容器)内的root只是外部的一个普通用户权限,privileged启动的容器可以看到很多host上的设备,并且可以执行mount,甚至允许你在docker容器内启动docker容器。
/usr/sbin/init >>>后面加 /usr/sbin/init表示给容器授权root权限,使容器能够使用root权限下的命令
给运行中的容器增加root权限:
首先你的container得正在运行。
可通过sudo docker container ls
查看容器的CONTAINER ID
最后执行命令(其中848669a8722b为上面查到的CONTAINER ID)
sudo docker exec -ti -u root 848669a8722b bash
查看容器日志
docker logs -f jenkins
查看容器运行
docker ps
之后浏览器输入 http://你的ip地址:8000
进入之后需要输入密码,在命令行使用如下命令获取密码
cat /home/jenkins/secrets/initialAdminPassword 查看密码
之后会进入jenkins安装插件页面,
这里选择安装推荐插件就可以了;
接下来就是进入jenkins首页,这里使用前需要配置一些基础的maven和jdk;
点击进入配置页面:
解释一下我这里为什么是/var/jenkins_home/
因为我首先jenkins是安装在docker里的,这时候使用的就是docker里的路径,
我们上面运行jenkins的时候,看我标红的地方;
这里我的jdk是复制了一份放在/home/jenkins/下面的,所以这里路径就可以直接这么写了;
注意:这里是JAVA_HOME,所以不要加bin目录;
接下来配置maven,跟jdk一样;
至此,基本配置都已经好了。
接下来创建你新项目吧;
对了,默认的推荐插件是没有maven项目的,所以你可以在插件市场里搜索一下maven;
然后去可选插件里搜索:
右上角的搜索框输入:Maven Integration plugin
找到之后直接安装,然后重启jenkins就可以了;
重启jenkins可以直接在浏览器地址栏操作:
这样就OK了;
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?
需要修改下目录权限, 因为当映射本地数据卷时,/home/docker/jenkins目录的拥有者为root用户,而容器中jenkins user的uid为1000
执行如下命令即可:
chown -R 1000:1000 /home/docker/jenkins
转载: