阿里出品!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 appnameecho′−−−−stopcontainer−−−−′dockerrm{app_name} echo '----rm container----' docker rmi groupname/{group_name}/groupname/{app_name}:${app_version} echo '----rm image----'
打包编译docker镜像docker build -t groupname/{group_name}/groupname/{app_name}:appversion.echo′−−−−buildimage−−−−′dockerrun−p8088:8088−−name{app_version} . echo '----build image----' docker run -p 8088:8088 --name appversion.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/profileactive −eTZ="Asia/Shanghai" −v/etc/localtime:/etc/localtime −v/mydata/app/{app_name}/logs:/var/logs -d groupname/{group_name}/groupname/{app_name}:${app_version} echo '----start container----'
-
将这两个文件上传到Linux服务器上,给run.sh添加可执行权限;