Docker打包Spring Boot工程

本文介绍了如何使用docker-maven-plugin插件来打包Spring Boot工程。通过在pom.xml中配置插件,声明参数,新建Dockerfile,然后执行构建命令,最终在target/docker目录下生成Docker镜像并可用于测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 使用docker-maven-plugin插件

在pom.xml中声明使用docker-maven-plugin插件

<plugin>
    <groupId>com.spotify</groupId>
    <artifactId>docker-maven-plugin</artifactId>
    <version>0.4.11</version>
    <configuration>
        <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
        <imageTags>
            <imageTag>${project.version}</imageTag>
            <imageTag>latest</imageTag>
        </imageTags>
        <dockerDirectory>src/main/docker</dockerDirectory>
        <resources>
            <resource>
                <targetPath>/</targetPath>
                <directory>${project.build.directory}</directory>
                <include>${project.build.finalName}.jar</include>
            </resource>
        </resources>
    </configuration>
</plugin>
  • imageNames是生成镜像的名称
  • imageTags是将会生成的标签,如上配置会生成两个镜像,一个标签为latest,一个为当前版本号
  • resource中声明将构建输出目录中的jar包拷贝到docker构建目录
  • dockerDirectory声明生成docker镜像的文件目录在src/main/docker

2. 声明参数

在pom中使用properties声明一些参数

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

project.version/project.build.directory/project.build.finalName等参数无需声明,会直接取到

3. 新建Dockerfile

FROM frolvlad/alpine-oraclejdk8:slim         #包含jdk8的基础镜像
VOLUME /tmp                                  #挂载点 重启后数据还在,这里暂时可以不要这句
ADD test-0.0.1-SNAPSHOT.jar lbltest.jar      #拷贝包
ENV JAVA_OPTS=""                             #配置java参数
#运行镜像时自动启动
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /lbltest.jar"] 

4. 构建镜像文件

mvn clean package docker:build

clean package后会在target/docker/目录下生成Dockerfile和jar包
docker:build则会运行Dockerfile的语句,基于jdk8镜像,拷贝jar包,并指定启动时启动java程序。
打包完后可以测试一下

#查看镜像
docker images
#运行镜像
docker run -d -p 8080:8080 lblimage/test
#查看镜像运行状态
docker ps 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值