Docker部署Spring Boot

发布时间:2024-02-23 点击:118
使用docker部署spring boot的方法示例,这里主要用到spring-boot开箱即用,能生成一个独立运行的程序,及maven的插件docker-maven-plugin
这里主要步骤
构建一个简单的springboot项目添加docker-maven-plugin及写dockerfile实践生成 docker镜像一个简单 spring boot 项目
以spring boot 2.0 为例
在pom.xml文件中增加parament依赖
<parent> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-parent</artifactid> <version>2.0.0.release</version> </parent> 增加web和测试依赖
<dependencies> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-web</artifactid> </dependency> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-test</artifactid> <scope>test</scope> </dependency> </dependencies> 创建一个 controller,在其中有一个index()方法,访问时返回:hello docker!
@restcontroller public class controller { @requestmapping(/) public string index() { return hello docker!; } } 启动类
@springbootapplication public class application { public static void main(string[] args) { springapplication.run(application.class, args); } } 添加完毕后启动项目,启动成功后浏览器放问:http://localhost:8080/,页面返回:hello docker!,说明 spring boot 项目配置正常。
添加dcoker-maven-plugin
在pom.xml的properties节点中添加docker镜像前缀
<properties> <docker.image.prefix>springboot</docker.image.prefix> </properties> 在plugins中添加docker构建插件
<build> <plugins> <plugin> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-maven-plugin</artifactid> </plugin> <plugin> <groupid>com.spotify</groupid> <artifactid>docker-maven-plugin</artifactid> <version>1.0.0</version> <configuration> <imagename>${docker.image.prefix}/${project.artifactid}</imagename> <dockerdirectory>src/main/docker</dockerdirectory> <resources> <resource> <targetpath>/</targetpath> <directory>${project.build.directory}</directory> <include>${project.build.finalnmae}.jar</include> </resource> </resources> </configuration> </plugin> </plugins> </build> 编写dockerfile
在目录src/main/docker下创建 dockerfile 文件,dockerfile 文件用来说明如何来构建镜像。
from openjdk:8-jdk-alpine volume /tmp add spring-boot-docker-1.0.jar app.jar entrypoint [java,-djava.security.egd=file:/dev/./urandom,-jar,/app.jar] expose 8080这个 dockerfile 文件很简单,构建 jdk 基础环境,添加 spring boot jar 到镜像中,简单的说明一下:
from ,表示使用 jdk8 环境 为基础镜像,如果镜像不是本地的会从 dockerhub 进行下载volume ,volume 指向了一个/tmp的目录,由于 spring boot 使用内置的tomcat容器,tomcat 默认使用/tmp作为工作目录。这个命令的效果是:在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录add ,拷贝文件并且重命名entrypoint ,为了缩短 tomcat 的启动时间,添加java.security.egd的系统属性指向/dev/urandom作为 entrypointexpose 指明8080端口提供服务生成docekr镜像
需要有一个 docker 环境来打包 spring boot 项目。
需要三个依赖
jdk环境mavendocker环境运行java -version,mvn -version,docker version这些命令不报错就是环境准备好了。
进入项目目录
mvn package -dmavne.test.skip=true java -jar target/spring-boot-docker-1.0.jar能正常运行,说明jar包没问题。
然后构建镜像
mvn docker:build显示build success就成功。
使用docker images来查看构建好的镜像
运行镜像
docker run -p 8080:8080 -t springboot/spring-boot-docker 然后curl http://127.0.0.1:8080可以看到返回hello docker!,说明成功


影响网站加载页面速度的原因
小程序找谁开发
浅谈数字域名在国内走红的原因
新闻类域名备案前置审批是什么
中华保险与阿里云签约7亿订单 打造新一代核心业务系统
什么是域名 IP地址和域名之间有什么关系
阿里云服务器怎么转到腾讯云帐号
九城与法国游戏公司Voodoo达成合作,致力休闲游戏市场!