docker 安装jenkins
有人说不建议在docker安装jenkins,我觉得也是,本文还是练习下
官网
https://jenkins.io/
文档
https://jenkins.io/doc/
中文文档
https://jenkins.io/zh/doc/
下载
https://jenkins.io/download/
Jenkins项目产生两个发布线,LTS和每周。 根据您组织的需求,可能优先于另一个。
两个版本行都以.war文件,本机包,安装程序和Docker容器的形式分发。 带齿轮图标的包裹由第三方维护。
LTS(长期支持)版本每12周从常规版本流中选择,作为该时间段的稳定版本。
每周都会发布一个新版本,为用户和插件开发人员提供错误修复和功能。
本文安装lts版
docker pull jenkins/jenkins:lts
docker pull失败,总超时,
配置registry-mirrors
网上很多说配置为https://registry.docker-cn.com,根本不管用
[[email protected] ~]# vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
使用阿里云的registry-mirrors
https://www.aliyun.com
登录阿里云
产品--开发与运维--代码托管、仓库--容器与镜像服务
管理控制台
我的配置
{
"registry-mirrors": ["https://********.mirror.aliyuncs.com","https://registry.docker-cn.com"],
"dns": ["180.76.76.76","114.114.114.114"]
}
阿里云就是他妈的快
重启docker服务
[[email protected] ~]# systemctl daemon-reload
[[email protected] ~]# systemctl restart docker
docker pull jenkins/jenkins:lts
docker run -d -p 8002:8080 --name my-jenkins jenkins/jenkins:lts (启动失败?)
docker ps -a
docker logs -f jenkins
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
touch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied
https://segmentfault.com/a/1190000008618462
需要修改下目录权限, 因为当映射本地数据卷时,/home/docker/jenkins目录的拥有者为root用户,而容器中jenkins user的uid为1000,(或者修改目录权限为777)
chown -R 1000 /data/dockerhome/jenkins_home (这条就行)
chown -R 1000:1000 /data/dockerhome/jenkins_home
这时就可以访问了http://192.168.103.205:8002/
docker cp jenkins:/var/jenkins_home /data/dockerhome (把jenkins_home考到宿主机,我这么用)
docker stop jenkins
#docker rm $(sudo docker ps -a -q)(谨慎使用)
docker run -d -p 8002:8080 -v /data/dockerhome/jenkins_home:/var/jenkins_home --name jenkins jenkins/jenkins:lts
查看一些系统信息
[[email protected] ~]# docker exec -it jenkins /bin/bash(进入docker)
[email protected]:/$ cat /etc/issue
Debian GNU/Linux 9 \n \l
[email protected]:/$ java -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-8u212-b01-1~deb9u1-b01)
OpenJDK 64-Bit Server VM (build 25.212-b01, mixed mode)
[email protected]:/$ git --version (这个自带了)
git version 2.11.0
[email protected]:/$ mvn -version
bash: mvn: command not found
通过Dockerfile制作镜像,添加jdk8,maven
jenkins内要使用docker,使用宿主机的。实际上jdk8,maven也可以用宿主机的。启动时把目录映射进去就行。
解决docker容器安装jenkins后无法使用宿主机docker、jdk、maven命令的问题
https://blog.****.net/weixin_43577800/article/details/84844438
安装libltdl.so.7 ,是为了jenkins使用docker命令时不会报错
/usr/lib64/libltdl.so.7
Dockerfile
FROM jenkins/jenkins:lts
MAINTAINER happyqing
USER root
#remove openjdk
RUN apt-get purge openjdk* -y
#add libltdl.so.7
ADD libltdl.so.7 /usr/lib/x86_64-linux-gnu
#RUN apt-get update && apt-get install -y libltdl7 && apt-get update
#set charset timezone
ENV LANG=zh_CN.UTF-8
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
#install jdk8
ADD jdk-8u192-linux-x64.tar.gz /usr/local
ENV JAVA_HOME /usr/local/jdk1.8.0_192
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $JAVA_HOME/bin:$PATH
#install maven
ADD apache-maven-3.6.1-bin.tar.gz /usr/local
ENV MAVEN_HOME /usr/local/apache-maven-3.6.1
ENV PATH $MAVEN_HOME/bin:$PATH
#USER jenkins
Dockerfile文件详解
https://www.cnblogs.com/panwenbin-logs/p/8007348.html
相应文件准备好
构建镜像
cd /data/Dockerfile/jenkins-jdk8-maven
docker build --no-cache -t jenkins-jdk8-maven:1.0 .
运行镜像
docker run -d -p 8002:8080 --name my-jenkins -v /usr/bin/docker:/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock -v /data/dockerhome/jenkins_home:/var/jenkins_home jenkins-jdk8-maven:1.0
查看信息
[[email protected] jenkins-jdk8-maven]# docker exec -it my-jenkins /bin/bash
[email protected]:/$ java -version
java version "1.8.0_192"
Java(TM) SE Runtime Environment (build 1.8.0_192-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.192-b12, mixed mode)
[email protected]:/$ git --version
git version 2.11.0
[email protected]:/$ mvn -version
Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-05T03:00:29+08:00)
Maven home: /usr/local/apache-maven-3.6.1
Java version: 1.8.0_192, vendor: Oracle Corporation, runtime: /usr/local/jdk1.8.0_192/jre
Default locale: en_US, platform encoding: ANSI_X3.4-1968
OS name: "linux", version: "3.10.0-862.el7.x86_64", arch: "amd64", family: "unix"
查看日志
[[email protected] jenkins-jdk8-maven]# docker logs -f my-jenkins
删除image
docker rmi imageID
docker images rm imageID
批量删除某个REPOSITORY下的iamge,
docker images | awk '/none/{print "docker rmi "$3}' | bash
docker images | awk '/jenkins-jdk8-maven/{print "docker rmi "$3}' | bash
docker 配置jenkins
https://blog.****.net/haveqing/article/details/89679327
参考:
Docker命令详解(run篇)
https://mp.****.net/postedit
Dockerfile文件详解
https://www.cnblogs.com/panwenbin-logs/p/8007348.html
解决docker容器安装jenkins后无法使用宿主机docker、jdk、maven命令的问题
https://blog.****.net/weixin_43577800/article/details/84844438
Docker安装Jenkins
https://my.oschina.net/u/3269534/blog/1831317?from=groupmessage