1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Docker容器整合wagon-ssh自动化部署SpringBoot工程

Docker容器整合wagon-ssh自动化部署SpringBoot工程

时间:2021-03-07 05:03:41

相关推荐

Docker容器整合wagon-ssh自动化部署SpringBoot工程

一、前提条件:

机器上已经安装了docker(安装过程)准备部署的springboot的jar包Dockerfile文件部署脚本deploy.sh升级脚本upgrade.sh

二、准备Dockerfile文件

创建一个Dockerfile(在宿主机器任意位置)内容如下:vi Dokckerfile

FROM java:8

ADDspringboot-webser-0.0.1-SNAPSHOT.jar app.jar

ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-Duser.timezone=GMT+8","-jar","-jar","/app.jar"]

EXPOSE 18103

解释:

java:8是指Docker Hub上官方提供的java镜像,版本号是8也就是jdk1.8,有了这个基础镜像后,Dockerfile可以通过FROM指令直接获取它的状态——也就是在容器中java是已经安装的,接下来通过自定义的命令来运行Spring Boot应用:VOLUME指向了一个/tmp的目录,由于Spring Boot使用内置的Tomcat容器,Tomcat默认使用/tmp作为工作目录。效果就是在主机的/var/lib/docker目录下创建了一个临时文件,并连接到容器的/tmp。ADD/COPY 将项目的jar文件作为app.jar添加到容器RUN表示在新创建的镜像中执行一些命令,然后把执行的结果提交到当前镜像。这里使用touch命令来改变文件的修改时间,Docker创建的所有容器文件默认状态都是“未修改”。这对于简单应用来说不需要,不过对于一些静态内容(比如:index.html)的文件就需要一个“修改时间”。EXPOSE 容器暴露端口ENTRYPOINT 应用启动命令 参数设定

部署脚本deploy.sh

#!/bin/sh

cur_dir=$(cd `dirname $0`; pwd)

ip=$1

export ip

cd ${cur_dir}

docker build -t fm-webser .

cd ${cur_dir}

echo "启动fm-webser容器"

docker run -itd \

--net host \

--name fm-webser \

-v ${cur_dir}/log:/fm-webser \

--restart always fm-webser

docker exec -ti fm-webser ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone

解释说明:

run: 容器启动命令--name boot-docker 自定义容器命名-d 程序后台启动-v /opt/jar/boot-docker/logs:/log 应用日志 数据卷的方式存储-p 8000:8000 用主机8000端口映射容器端口boot-docker 镜像名称

四、升级脚本upgrade.sh

#!/bin/sh

basedir=$(cd `dirname $0`; pwd)

docker cp ${basedir}/oss-fm-webser-0.0.1-SNAPSHOT.jar fm-webser:/app.jar

echo "cp oss-fm-webser.jar success"

docker restart fm-webser

echo "restart fm-webser docker success"

五、整合wagon-ssh插件

pom增加依赖:

<build> <extensions><extension><groupId>org.apache.maven.wagon</groupId><artifactId>wagon-ssh</artifactId><version>2.10</version></extension></extensions><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.7</version><configuration><configurationFile>${basedir}/src/main/resources/generatorConfig.xml</configurationFile><overwrite>true</overwrite><verbose>true</verbose></configuration></plugin><plugin><groupId>org.codehaus.mojo</groupId><artifactId>wagon-maven-plugin</artifactId><version>1.0</version><configuration><fromFile>target/alarm-collection-0.0.1-SNAPSHOT.jar</fromFile><url>scp://root:fa9f4f99-bfc2-4aaa-a151-a89737e6abeb@10.21.70.99/home/docker/alarm-collection</url><commands><command>sh /home/docker/alarm-collection/upgrade.sh</command></commands><displayCommandOutputs>true</displayCommandOutputs></configuration></plugin></plugins></build>

新增maven配置项: clean package wagon:upload-single wagon:sshexec

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。