Spring boot 项目容器化

1.在pom.xml中增加使用docker-maven-plugin,Spring Boot Maven plugin 提供了很多方便的功能,包括:
收集的类路径上所有 jar 文件,并构建成一个单一的、可运行的jar。
搜索 public static void main() 方法来标记为可运行的类。

<properties>
    <docker.image.prefix>wwk</docker.image.prefix>
</properties>

<build> 
<plugins> 
<plugin> 
<groupId>com.spotify</groupId> 
<artifactId>docker-maven-plugin</artifactId> 
<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.finalName}.jar</include> 
</resource> 
</resources> 
</configuration> 
</plugin> 
</plugins> 
</build>

imageName指定镜像的名字。
dockerDirectory指定 Dockerfile文件 的位置。
resources是指那些需要和 Dockerfile 放在一起,在构建镜像时使用的文件。

构建镜像有两种方式,第一种是将构建信息指定到 POM 中,第二种是使用 Dockerfile 配置构建信息。


2.编写Dockerfile
Docker 使用 Dockerfile 文件格式来指定 image 层。
创建文件 src/main/docker/Dockerfile:

FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD test-docker-1.0.0.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

3.执行构建和运行镜像

mvn package docker:build
docker run -p 8080:8080 -t wwk/test-docker

[INFO] Copying /Users/hycx/i_workspace/test/test-docker/target/test-docker-0.0.1-SNAPSHOT.jar -&gt; /Users/hycx/i_workspace/test/test-docker/target/docker/test-docker-0.0.1-SNAPSHOT.jar
[INFO] Copying src/main/docker/Dockerfile -&gt; /Users/hycx/i_workspace/test/test-docker/target/docker/Dockerfile
[INFO] Building image wwk/test-docker

4.
手动上传Dockerfile和jar文件到服务器,到同目录下,运行下面的命令,生成镜像。

docker build -t wwk/test-docker .
docker images

用 Docker 构建、运行、发布来一个 Spring Boot 应用
https://blog.csdn.net/kkkloveyou/article/details/50942275

Alpine Linux

frolvlad/alpine-oraclejdk8:slim 镜像的基础镜像是 Alpine Linux 3.7。
Alpine Linux 是一个社区开发的面向安全应用的轻量级 Linux 发行版。Alpine采用了musl libc和busybox以减小系统的体积和运行时资源消耗,在保持瘦身的同时,Alpine Linux还提供了自己的包管理工具apk,可以在其网站上查询,或者直接通过apk命令查询和安装。
Alpine Linux作为基础镜像只有5MB。

Spring boot 与 docker

Springboot服务本质上是一个java服务,它也可以同时在jar中打包一个Web服务器例如tomcat。java服务运行所依赖的就是java虚拟机,java虚拟机在大多数操作系统上都会安装。而spring boot服务可以打包为一个可执行的jar,可以很简单的运行管理。这样,一般地在已经安装了java运行环境的服务器上,把spring boot服务运行于docker内的必要性就不大了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值