做ToB或者ToG相关的这种传统项目,大多情况下应用都会直接部署到线下的服务器上,有时候客户就给那么1两台机器,所以如果想使用互联网化的思维来进行规划部署是不现实的,因此对于这种项目来说,我们直接把项目使用docker打包好,然后扔到服务器上运行起来就可以了。所以这票文字我们介绍下使用Dockerfile进行项目打包,并且实现用docker运行的效果。
一、首先需要一个spring-boot的项目
这里首先需要准备一个springboot项目,根据自己的情况准备即可,文末我们也提供了一个示例项目。
二、准备一个Dockerfile文件
在项目的根目录下创建一个名为Dockerfile的空白文件,然后把下面的内容复制进去
# 拉取指定的镜像文件 FROM hub.c.163.com/library/java:latest # MAINTAINER 指令允许你给将要制作的镜像设置作者信息 MAINTAINER author <author@163.com> # 容器内创建一个 apps 目录,用来挂载 jar 包 RUN mkdir -p /apps # 将 passjavas-demo-1.0 jar 包复制到 /apps/passjava-demo.jar ADD target/AdmissionDemo-1.0.jar /apps/AdmissionDemo-1.0.jar # 设置时区 ENV TZ "Asia/Shanghai" # 设置暴露的端口 EXPOSE 8089 #dockerfile中增加健康检查,interval表示每个5分钟检查一次,timeout每次超过5秒钟认定为失败,retries失败后轮询3次认定为容器不健康,考虑重启。 HEALTHCHECK --interval=60s --timeout=5s --retries=6 \ CMD curl -f http://127.0.0.1:8089/health || exit 1 # 运行 Java 应用程序的命令 ENTRYPOINT ["java","-Xms256m","-Xmx256m","-jar","/apps/AdmissionDemo-1.0.jar"]
这个dockerfile我们在里面需要更换的有:
MAINTAINER 这是指作者的信息,这里根据情况进行修改下即可。 ADD 这里是把本地的jar包打包到docker镜像里面的某个路径里面去,根据实际情况进行打包即可。 EXPOSE 这里是需要暴露的端口,我们的项目暴露的是8089端口,根据实际需要进行修改即可。 HEALTHCHECK和cmd,这个是配置的健康检查,需要springboot项目配置有才开启这个,没有配置就不开启。 ENTRYPOINT 根据自己的情况修改启动命令。
三、执行maven打包命令打包jar
上面的docker打包仅包含docker镜像的打包,他需要一个已经打包好的jar包,因此我们首先需要对项目进行maven打包,执行如下的命令
mvn clean install
执行完毕之后,就有可以在target里面看到这个AdmissionDemo-1.0.jar
四、使用Dockerfile打包镜像
现在jar包打好了,下面我们就再打包一个docker镜像。使用如下的命令
docker build -t java-admissiondemo .
这里的参数-t之后的是定义一个docker image的tag,名称自定义。
最后有一个. 代表的是当前目录,这个.一定不要忘记了。
当出现如下的界面就代表打包好了。
此时我们使用docker images命令查看docker的镜像
docker images
五、运行docker实例
使用下面的docker run命令运行docker实例
docker run --name admission -d -p 8089:8089 java-admissiondemo
这里的命令根据自己的情况调试就可以了,例如把日志目录挂在出来,例如添加restart等信息,这里仅简写。
再查看下docker启动的日志:
docker logs -f admission
六、测试访问
这里我们测试访问下这个项目,访问地址:http://${ip}:${port}/admiss,例如:
可以看到测试完全正常。
以上就是使用Dockerfile打包springboot项目,并且在服务器上运行docker示例的案例,最后附上本案例的项目源码,登录后即可下载
还没有评论,来说两句吧...