阿里出品!SpringBoot应用自动化部署神器,IDEA版Jenkins?

  • 首先准备好打包应用镜像需要的Dockerfile文件;

    该镜像需要依赖的基础镜像

    FROM java:8

    将当前目录下的jar包复制到docker容器的/目录下

    ADD mall-tiny-deploy-1.0-SNAPSHOT.jar /mall-tiny-deploy-1.0-SNAPSHOT.jar

    声明服务运行在8088端口

    EXPOSE 8088

    指定docker容器启动时运行jar包

    ENTRYPOINT [“java”, “-jar”,”/mall-tiny-deploy-1.0-SNAPSHOT.jar”]

    指定维护者的名字

    MAINTAINER macrozheng

  • 再准备好可以自动打包应用镜像、创建并运行容器的脚本run.sh,这两个脚本的具体使用可以参考使用Jenkins进行自动化部署的技巧 ;

    #!/usr/bin/env bash

    定义应用组名

    group_name=’mall-tiny’

    定义应用名称

    app_name=’mall-tiny-deploy’

    定义应用版本

    app_version=’1.0-SNAPSHOT’

    定义应用环境

    profile_active=’prod’
    echo ‘—-copy jar—-‘
    docker stop appnameecho′−−−−stopcontainer−−−−′dockerrm{app_name}
    echo ‘—-stop container—-‘
    docker rm appn​ameecho′−−−−stopcontainer−−−−′dockerrm{app_name}
    echo ‘—-rm container—-‘
    docker rmi groupname/{group_name}/groupn​ame/{app_name}:${app_version}
    echo ‘—-rm image—-‘

    打包编译docker镜像

    docker build -t groupname/{group_name}/groupn​ame/{app_name}:appversion.echo′−−−−buildimage−−−−′dockerrun−p8088:8088−−name{app_version} .
    echo ‘—-build image—-‘
    docker run -p 8088:8088 –name appv​ersion.echo′−−−−buildimage−−−−′dockerrun−p8088:8088−−name{app_name}
    –link mysql:db
    -e ‘spring.profiles.active’=profileactive −eTZ=”Asia/Shanghai” −v/etc/localtime:/etc/localtime −v/mydata/app/{profile_active} \
    -e TZ=”Asia/Shanghai” \
    -v /etc/localtime:/etc/localtime \
    -v /mydata/app/profilea​ctive −eTZ=”Asia/Shanghai” −v/etc/localtime:/etc/localtime −v/mydata/app/{app_name}/logs:/var/logs
    -d groupname/{group_name}/groupn​ame/{app_name}:${app_version}
    echo ‘—-start container—-‘

  • 将这两个文件上传到Linux服务器上,给run.sh添加可执行权限;

上一篇 Tidb分布式数据库安装部署实践
下一篇 线程的创建、Lambda函数式接口?Runnable和Callable之间的适配?动态修改线程任务?这里带你图解Java线程池