Table of Contents generated with DocToc
简介
Jenkins 提供超过1000个插件来支持构建、部署、自动化,满足任何项目的需要。我们可以用Jenkins来构建和部署我们的项目,比如说从我们的代码仓库获取代码,然后将代码打包成可执行的文件,通过远程的ssh工具执行脚本来运行我们的项目。
自动化部署
将生成docker镜像和运行docker容器的操作进行整合,实现一键部署。
- 基础环境搭建,安装mysql镜像等;
- 服务器安装jenkins并启动;
- 配置jenkins,添加代码仓路径、maven配置、git配置、ssh配置和启动docker容器的脚本(镜像打包完成后运行);
- 在任务列表点击运行,一键部署。
安装jenkis镜像
下载jenkins镜像:
1 | docker pull jenkins/jenkins:lts |
在Docker容器中运行Jenkins:
1 | docker run -p 80:8080 -p 50000:5000 --name jenkins \ |
Jenkins配置
访问http://192.168.6.132:8080/,登录Jenkins。
准备用于启动docker容器的脚本,上传到服务器。注意使用--network network_name指定与依赖服务(如mysql)在同一个网络下,不然会导致Cannot link to /mysql的异常。
1 | #!/usr/bin/env bash |
在jentins界面新建任务,配置maven、git、代码仓库、脚本路径等。
运行任务
可以在控制台界面查看任务执行的信息。
问题记录
无法进入登录页面
可能是机器网络配置改变,需要重启docker(systemctl restart docker),才能正常访问jenkins登录页面。
Cannot link to /mysql
mall-tiny-jenkins容器与mysql容器不在同一个网络下。应该在运行mall-tiny-jenkins的脚本中添加–network参数:
1 | docker run -d --name mall-tiny-jenkins -p 8088:8088 --net yml_default mall-tiny-jenkins |
查看mysql容器的networks:
1 | docker inspect mysql |
返回的networks信息:
1 | "Networks": { |
查看所有容器的networks信息:
1 | docker network ls |