先讲下环境吧:(如下)

spring boot ,centos 7,docker 


本人近日自己在用docker打包构建部署自己的项目,然后发现由于我的项目是利用springboot的jar包直接构建启动的,在docker的命令中步骤有点繁琐过多,然后我就产生了使用脚本一键构建打包的想法,由于是刚学会的一点脚本语言,如果有写的不好的,多谢指正。


  • 首先我们看下springboot的项目结构

 

可以看到docker构建打包的文件在资源文件存放的位置,当然,位置随便放,首次接触的可以去看下这篇文章

使用docker部署springboot

把整个项目使用ftp工具上传至服务器,我使用的是xftp

默认

在服务器上,创建软链直接指向springboot所在位置

脚本文件也就是那个以.sh结尾的

  • 关于脚本内容

#!/bin/bash
echo "正在停止所有docker里面的容器ing..."
docker stop $(docker ps -a -q)
echo "停止成功,正在删除容器ing..."
docker rm $(docker ps -a -q)

dockerlist=`docker images`
echo "$dockerlist"
docker rmi $(docker images -q)
echo "清除所有镜像完毕"
echo "正在进行新的文件打包部署..."
cd docker/Adventure
mvn package docker:build
echo "打包构建成功"
docker run -p 80:80 -t adventure/docker
echo `docker ps`
echo "end ..."

讲下思路,首先我们把docker中所有容器停止,容器关闭了,镜像也就会运行不了,然后把容器删除。只有停止容器,才能删除容器。docker镜像停止也是如此,删除所有镜像后,我就通过软链进入项目目录。

通过maven进行打包,mvn package,由于已经在项目目录中了,之前我提过的使用docker的配置文件,在此刻体现出来了。docker:build 就是读取解析配置文件,进行构建部署到docker成为镜像。下面是Dockerfile文件内容

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD Adventure-1.0.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
  • 运行脚本

在你创建完这个脚本后,你得给脚本文件赋权。命令如下

chmod +x  ./xxxx.sh      列如:文件名为 docker.sh 执行命令为 chmod +x ./docker.sh

如上图。执行赋权成功的脚本是这样的。

脚本运行:

运行1

可以看到上面正在执行到maven打包

运行2

上图为构建部署到docker镜像中

运行3

最后。指向80端口。至此为止,一键清除构键docker脚本完成

如有转载,请标明来源。此为本人原创

Roger

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐