centos7+docker+Jenkins+svn搭建自动

发布时间:2020-03-01 04:58:14 作者:Adam的blog
来源:网络 阅读:603

centos7+docker+Jenkins+svn搭建自动化部署平台

1. centos7

2. centos7中安装docker1.31.1

自行百度,此处无坑

3. centos7安装配置java8,maven,redis,mysql

4. docker中安装 Jenkins

5. centos7 安装 svn

​ 参考链接:https://www.cnblogs.com/zhangheliang/p/8724605.html

6. Jenkins 和 svn整合

还有一种没有去掉勾的方式,我获取 crumb 值的时候报404,为解决,有需要自行百度

centos7+docker+Jenkins+svn搭建自动

centos7+docker+Jenkins+svn搭建自动

centos7+docker+Jenkins+svn搭建自动

centos7+docker+Jenkins+svn搭建自动

centos7+docker+Jenkins+svn搭建自动

centos7+docker+Jenkins+svn搭建自动

7. shell脚本和DockerFile文件

#!/bin/bash
#操作/项目路径(Dockerfile存放的路径),每个项目都有对应的dockerfile
DOCKERFILE_PATH=/mydata/jenkins_home/workspace/jenkinsdemo/src/main/docker
#jenkins工作空间
SOURCE_PATH=/mydata/jenkins_home/workspace
#docker 镜像/容器名字或者jar名字 这里都命名为这个
SERVER_NAME=jenkinsdemo
JAR_NAME=demo-0.0.1-SNAPSHOT
#获取容器id
CID=$(docker ps | grep "${SERVER_NAME}" | awk '{print $1}')
#获取镜像id
IID=$(docker images | grep "${SERVER_NAME}" | awk '{print $3}')

DATE=`date +%Y%m%d%H%M`

 # 备份
function backup(){
    if [ -f "${DOCKERFILE_PATH}/${SERVER_NAME}.jar" ]; then
        echo "${SERVER_NAME}.jar 备份..."
            cp ${DOCKERFILE_PATH}/${JAR_NAME}.jar ${DOCKERFILE_PATH}/backup/${SERVER_NAME}-$DATE.jar
        echo "备份 ${JAR_NAME}.jar 完成"
    else
        echo "${DOCKERFILE_PATH}/${JAR_NAME}.jar不存在,跳过备份"
    fi
}

# 最新构建代码 移动到项目环境
# 把最新构建的jar包放到和dockerfile同级的目录
function transfer(){
    echo "啦啦啦 ${DOCKERFILE_PATH}"
    echo "最新构建代码 ${SOURCE_PATH}/${SERVER_NAME}/target/${JAR_NAME}.jar 迁移至 ${DOCKERFILE_PATH}"
        cp ${SOURCE_PATH}/${SERVER_NAME}/target/${JAR_NAME}.jar  ${DOCKERFILE_PATH}/
    echo "迁移完成"
}

# 修改访问权限
function changemod(){
    echo "修改 ${DOCKERFILE_PATH}/${JAR_NAME}.jar 的访问权限"
       cd ${DOCKERFILE_PATH}
       chmod 777 ${JAR_NAME}.jar
    echo "修改访问权限完成"
}

# 构建docker镜像
function build(){
    if [ -n "$IID" ]; then
        echo "存在${SERVER_NAME}镜像,IID=$IID"
        echo "停止容器docker stop  $CID"
        docker stop  $CID
        echo "删除容器 docker rm $CID"
        docker rm $CID
        echo "删除镜像 docker rmi ${SERVER_NAME}"
        docker rmi ${SERVER_NAME}
        echo "构建镜像 docker build -t "${SERVER_NAME}"  ."
        cd ${DOCKERFILE_PATH}
        docker build -t="${SERVER_NAME}"  .
    else
        echo "不存在${SERVER_NAME}镜像,开始构建镜像  docker build -t ${SERVER_NAME} . "  
        cd ${DOCKERFILE_PATH}
        docker build -t="${SERVER_NAME}"  .
    fi
}

# 运行docker容器
function run(){
    backup
    transfer
    changemod
    build
    echo "docker run创建容器... docker run -d  --name=${SERVER_NAME} -p 8002:8082 -v  ${DOCKERFILE_PATH}:${DOCKERFILE_PATH}    jenkinsdemo:latest"
        docker run -d  --name=${SERVER_NAME} -p 8002:8002 -v  ${DOCKERFILE_PATH}:${DOCKERFILE_PATH}    jenkinsdemo:latest
    echo "${SERVER_NAME}容器创建完成"
}

#入口
run 
# 该镜像需要依赖的基础镜像
FROM java:8
# 将当前目录下的jar包复制到docker容器的/目录下
ADD demo-0.0.1-SNAPSHOT.jar /jenkinsdemo.jar
# 运行过程中创建一个mall-tiny-docker-file.jar文件
RUN bash -c 'touch /jenkinsdemo.jar'
# 声明服务运行在8083端口
EXPOSE 8083
# 指定docker容器启动时运行jar包
ENTRYPOINT ["java", "-jar","/jenkinsdemo.jar"]
# 指定维护者的名字
MAINTAINER zhaoguozhen

centos7+docker+Jenkins+svn搭建自动

8. Docker安装可视化工具Portainer

参考链接:https://my.oschina.net/zhengqingya/blog/3066410

centos7+docker+Jenkins+svn搭建自动

9.结果

centos7+docker+Jenkins+svn搭建自动

10. TIPS

11. 后记

centos7+docker+Jenkins+svn搭建自动

推荐阅读:
  1. appium自动化测试搭建
  2. 如何搭建DHCP(IP自动分配)

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

运维 dock ce

上一篇:实现排行榜功能

下一篇:使用adb devices命令无法识别夜神模拟器的解决方法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》