版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34173549/article/details/80632522
由于公司要做微服务所以我对jenkins docker springcloud如何集成起来做自动部署做了一些研究,这里写出来也算是结自己一个总结,同时也希望能帮助到其他人。
我这里环境如下:
- Contos7 64
- jdk-8u144-linux-x64.tar.gz
- jenkins.war 2.78
- docker
- gitlab
- maven
- git
- 进入jdk的目录 cd /usr/local 我这里是/usr/local这个目录
- 查看目录下文件 ls -il
- 解压jdk tar zxvf jdk-8u144-linux-x64.tar.gz
- 配置jdk 编辑profile 文件加入jdk 环境变量 vim /etc/profile
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
- 使用source命令使配置生效 source /etc/profile
- 这时我们来执行 java -version 出现下面这个就说明配置成功了。
- 接下来我们就可以安装jenkins了首选需要下载jenkins 下载地址 http://updates.jenkins-ci.org/download/war/
- 下载后将jenkins.war上传到 /usr/local
- 到jenkins.war 目录下 执行 java -jar jenkins.war 或者是 java -jar httpPort=8080(这里可以指定怎么想指定的端口) jenkins.war jenkins 默认是8080
- 因为liunx 系统没有开放8080端口所以要开放8080端口 firewall-cmd --add-port=8080/tcp --permanent
- 重新加载防火墙配置 firewall-cmd --reload
- 这时在浏览器访问 http://ip:8080 就可以看到
- 这是jenkins为我们自动生成的一个密钥 这个密钥可以在控制台找到 当然也可以去 这个目录下找到/root/.jenkins/secrets/initialAdminPassword这里我们到控制台去找
- 将这个密钥复制到文本框 点击Continue 就可以看到这个页面
- 这里这们选择推荐(install suggested plugins)这时可以看到已经在安装插件
- 安装完成后需要创建一个管理员账户 填写完成后点击 Save and finish
- 当进入下面这个页面后jenkins就算是安装完成了
- docker 的安装我这里是安官网的安装这里就不做请说明。请参考官网 https://docs.docker.com/engine/installation/linux/docker-ce/centos/#install-using-the-repository
- maven 安装 首先要下载一上maven 的安装文件 使用wget下载 wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.0/binaries/apache-maven-3.5.0-bin.tar.gz
- 下载完成后解压 maven :tar zxvf apache-maven-3.5.0-bin.tar.gz
- 配置MAVEN_HONE 环境变量
- 编辑 vim /etc/profile 加入下面这两句
export PATH=$PATH:$MAVEN_HOME/bin
- 配置生效 source /etc/profile
- 执行mvn -version 看到如果图说明配置成功
- 配置阿里云的maven repository 进入 maven conf目录下 cd /usr/local/apache-maven-3.5.0/conf
- 编辑settings.xml加入阿里云的maven仓库 vimsettings.xml
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
- 安装git yum install -y git
- 安装完成执行 git --version
- 接下来进入主题来构建我们的第一个项目
1.在jenkins中创建一个新任务
2.构建一个自由风格的软件项目
3.配置项目构建信息
1)配置git
2)配置git web hook 安装 gitlab hook plugin
系统管理 -> 插件管理 -> 可选插件 -> 搜索 gitlab hook plugin -> 选中安装
首先说明我这里用的是私有的gitlab 如果你的机器可以公网访问那么你可以使用github 或 码云 。搭建私有gitlab请看 http://www.imooc.com/article/17128?block_id=tuijian_wz
进入点击generate生成一个token 复制 http://192.168.189.139:8080/project/microservice-discovery 进入 gitlab
Settings -> Integrations -> 添加url和 token
3)配置构建环境
maven构建 增加构建步骤 -> invoker top-level-Maven targets
构建命令 clean package
shell 脚本 增加构建步骤 -> Execute shell
构建前我们需要设置一下docker 的regitry通过不安全的http访问 地址以及阿里云加速器 vim /usr/lib/systemd/system/docker.service 加入如下
--registry-mirror=https://aj2rgad5.mirror.aliyuncs.com --insecure-registry 192.168.189.133:5000
完成已上步骤我们点构建就可以构建我们的项目了 从下图中可以看到已经开始在构建
构建完成后我们访问http://192.168.189.139:8761就可以看到springcloud eureak的管理页了
构建脚本如下:
REGISTRY_URL=192.168.189.133:5000
WORK_DIR=/root/work_build
PROJECT_NAME=microservice-provider
PROJECT_VERSION=0.0.1
if [ ! -e ${WORK_DIR}/${PROJECT_NAME} ] && [ ! -d ${WORK_DIR}/${PROJECT_NAME} ]; then
mkdir -p ${WORK_DIR}/${PROJECT_NAME}
echo "Create Dir: ${WORK_DIR}/${PROJECT_NAME}"
fi
if [ -e ${WORK_DIR}/${PROJECT_NAME}/Dockerfile ]; then
rm -rf ${WORK_DIR}/${PROJECT_NAME}/Dockerfile
echo "Remove File: ${WORK_DIR}/${PROJECT_NAME}/Dockerfile"
fi
cp ./Dockerfile ${WORK_DIR}/${PROJECT_NAME}/
cp ./target/*.jar ${WORK_DIR}/${PROJECT_NAME}/
cd ${WORK_DIR}/${PROJECT_NAME}/
docker build -t ${REGISTRY_URL}/microservice/${PROJECT_NAME}:${PROJECT_VERSION} .
docker push ${REGISTRY_URL}/microservice/${PROJECT_NAME}:${PROJECT_VERSION}
if docker ps -a | grep ${PROJECT_NAME}; then
docker rm -f ${PROJECT_NAME}
echo "Remove Docker Container: ${PROJECT_NAME}"
fi
docker run -d -p 8761:8761 --name ${PROJECT_NAME} ${REGISTRY_URL}/microservice/${PROJECT_NAME}:${PROJECT_VERSION}