环境搭建:
1.docker 安装:
系统使用版本应大于centos7 不然安装需要升内核特别麻烦 centos7一下升内核自行百度
使用 yum 安装(引用菜鸟教程):
安装一些必要的系统工具:
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
添加软件源信息:
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新 yum 缓存:
sudo yum makecache fast
安装 Docker-ce:
sudo yum -y install docker-ce
启动 Docker 后台服务
sudo systemctl start docker
2.拉去jenkins镜像
进入jenkins官网 :https://jenkins.io/
执行 : docker pull jenkins/jenkins
镜像拉完后执行:docker images查看镜像
启动容器:
docker run -d -p 8080:8080 jenkins/jenkins 或者 docker run -d -u root -p 8080:8080 【IMAGE ID】
-d 以守护线程后台方式运行。不加该参数,关掉命令行,docker的jenkins就随之停止了。
-p 端口映射 docker命令所有映射,都是真系统的在前,docker下的在后 例如 -p 80:8080 就是把docker下的8080端口映射到真正系统上的80端口。对外访问使用80端口进行访问
http://localhost:8080登陆jenkins(访问不了可以试下执行 service iptablse stop临时关闭防火墙):
需要获取解锁jenkins的秘钥
根据界面提示的路径去获取秘钥 这里其实不需要 我们之间看运行日志就能获取到
执行 : docker logs -f 【CONTAINER ID】这里容器id就是执行docker ps 后获取到的id
复制秘钥就能登录了
登录后会显示插件安装 这里选择自动安装
慢慢等待安装结束吧!!!
创建管理员账号密码
直接下一步
起飞了 主界面如下
安装插件:
系统管理 -> 插件管理 在可选插件里搜索
Maven Integration
Publish Over SSH
配置全局: 系统管理 -> 全局工具配置
JDK和git容器已经安装了 maven需要手动安装 解压好找到setting.xml配置就行了
这里可以用wget下载直接解压就可以
cd /usr/local/
mkdir maven
cd maven
wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.2.5/binaries/apache-maven-3.2.5-bin.tar.gz
tar -zxvf ./apache-maven-3.2.5-bin.tar.gz
系统管理 -> 系统设置
找到 Publish over SSH 点新增 ->高级 配置连接服务器的地址 用户名和密码
这里系统配置完成了!!!
新建任务 ->构造一个maven项目 取名 jenkins_docker
配置git地址 这样jenkins才能知道去哪里拉代码
需要配置下git用户名和密码 点击 添加
配置构建指令和pom文件地址 pom文件地址就是项目里面pom文件地址如果在根目录直接填pom.xml
配置 Post Steps
上面配置完成我们已经可以把jar包上传到/usr/local/docker了
目录随便自定义 但是要保证jar包要和Dockerfile在同一个目录
在用jenkis构建前我们需要在linux创建这个目录并且写一个docker构建脚本
cd /usr/local
mkdir docker
cd docker
mkdir Dockerfile
把下面脚本复制进去 包名按照自己项目名字改
FROM registry.cn-hangzhou.aliyuncs.com/qp_oraclejava/orackejava:8u172 VOLUME /tmp ADD jenkins-0.0.1-SNAPSHOT.jar app.jar RUN sh -c 'touch /app.jar' ENV JAVA_OPTS="" EXPOSE 8081 ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
构建脚本:
docker stop $(docker ps -a | grep "tututu*" | awk '{print $1}');
docker rm $(docker ps -a | grep "tututu*" | awk '{print $1}');
docker rmi tututu/jenkins;
docker build -t tututu/jenkins /usr/local/docker/;
docker run -d -p 8081:8081 tututu/jenkins