2.安装docker-compose
3.创建目录/home/chengf/jenkins
4.创建数据卷
docker volume create --name jenkins_data
5.在docker host主机上下载安装JDK1.8,如果是maven项目还需要下载安装maven
6.安装启动Jenkins
docker run --name chengf_jenkins -d -p 8080:8080 -p 50000:50000 -v jenkins_data:/var/jenkins_home -v /home/chengf/soft/jdk1.8.0_111:/usr/local/jdk -v /home/chengf/soft/apache-maven-3.3.9:/usr/local/maven -v /home/chengf/.m2:/var/jenkins_home/.m2 jenkins
- -v jenkins_data:/var/jenkins_home 把Jenkins主目录挂到刚创建的valume
- -v /home/chengf/soft/jdk1.8.0_111:/usr/local/jdk 把主机上的jdk挂载到Jenkins镜像内部,这样在Jenkins内部不需要安装JDK也可以使用
- -v /home/chengf/soft/apache-maven-3.3.9:/usr/local/maven 把主机上的maven挂载到Jenkins镜像内
- -v /home/chengf/.m2:/var/jenkins_home/.m2 jenkins 把主机上的.m2文件挂载到Jenkins内的.m2下,这样如果我们需要配置maven私服等属性时,可以直接配置主机上.m2/setting.xml文件
7.安装Jenkins插件
需安装 Maven Integration plugin、GitLab Plugin、Gitlab Hook Plugin插件,直接安装失败的话,可以先下载下来,然后在advance中,选中下载下来的插件上传后安装
8.设置Jenkins时间
* 直接运行Jenkins镜像时日期可能不准,而镜像内部又不能通过date -s 来设定,可以通过把主机的timezone设定到镜像里面来解决这个问题,即在启动脚本中追加
-v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone
9.利用Jenkins直接生成docker 镜像
因为Jenkins镜像只包含一个基本的linux运行环境,所以不能直接在里面运行对docker build 这样的命令,所以需要用 Publish over SSH 这个插件,将Jenkins镜像打好的jar传递到一个正式的linux环境中,并通过ssh命令生成镜像,具体步骤
1. Passphrase: your passphrase 2. path to key: blank 3. key : blank 4. Disable exec : un-check SSH Servers 1. Name: [email protected] 2. hostname: remotehost.com 3. Username: remote_user 4. Remote Directory: your remote directory Advanced -- 5. check the box "use passsword authentication, or use a different key" `important` 6. Passphrase / Password: your linux login password`important` 7. path to key: blank 8. key:blank 9. port: ssh server's ssh port(default 22) 10. Timeout(ms): 300000
这样就可以利用ssh server上的docker命令直接生成docker 镜像,并将镜像文件上传到自己的私服上,因为我这边的环境中docker repository和ssh server 是同一台机器,所以生成的镜像名称是localhost,如果不一样需要改成相应的docker repository的ip