使用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达成合作,致力休闲游戏市场!