java项目快速打包镜像到docker服务器

java项目快速打包镜像到docker服务器

环境准备

idea+java-maven项目

复制代码
可以自己新建一个springboot项目,请自行百度,这里不再举例

Dockerfile

在springboot项目的 项目根目录下放一个Dockerfile文件,

文件内容如下

复制代码
#基础镜像(这里配置的是从镜像私服拉取jdk8的镜像)
FROM 192.168.11.131:5000/myrepo/openjdk:8-jre
#作者信息
MAINTAINER thinkpet <1131201834@qq.com>
#系统编码
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
#声明一个挂载点,表示容器内此路径会映射到宿主机的某个目录
VOLUME /tmp

ARG JAR_FILE
#将maven构建后的jar复制到image里,名字改成了app.jar
ADD target/${JAR_FILE}  /app.jar
#暴露端口8913
EXPOSE  8913
#启动容器内app时的执行命令
ENTRYPOINT ["java","-Xmx128m","-Xms128m","-jar","/app.jar"]

dockerfile-maven-plugin

复制代码
dockerfile-maven-plugin是
spotify公司开源的maven项目打包docker镜像的插件

使用该插件需要你的本机(开发机)
配置一个DOCKER_HOST环境变量 来指定docker服务器tcp访问地址,
如果你本机已经安装了dockerDesktop,就不需要配置这个环境变量

配置案例

在你的springboot项目的根pom文件里的build节点下 plugins节点内 添加如下配置

xml 复制代码
<plugin>
    <groupId>com.spotify</groupId>
    <artifactId>dockerfile-maven-plugin</artifactId>
    <version>1.3.5</version>

    <!-- 配置当执行maven package时执行build镜像 -->
    <executions>
        <execution>
            <id>default</id>
            <goals>
                <goal>build</goal>
            </goals>
        </execution>
    </executions>

    <configuration>
        <!-- 最终生成的镜像标签是 repository:tag
         如 192.168.11.131:5000/myrepo/cs-docker-demo:1.2.7
         -->
        <repository>192.168.11.131:5000/myrepo/${project.artifactId}</repository>
        <tag>${project.version}</tag>
        
        <!--   jar包名称取maven package默认生成的jar名,
            如 cs-docker-demo-1.2.7.jar
          -->
        <buildArgs>
            <JAR_FILE>${project.build.finalName}.jar</JAR_FILE>
        </buildArgs>
    </configuration>

</plugin>
相关推荐
Mr.wangh几秒前
单例模式&阻塞队列详解
java·开发语言·单例模式·多线程·阻塞队列
❀͜͡傀儡师3 分钟前
Docker 部署 DeepSeek-OCR 和WebUI
docker·容器·ocr
Slow菜鸟11 分钟前
Java后端常用技术选型 |(三)分布式篇
java·分布式
q***99415 分钟前
Spring Boot 实战:轻松实现文件上传与下载功能
java·数据库·spring boot
Pailugou17 分钟前
使用socket实现TCP服务端
服务器·网络·tcp/ip
张较瘦_30 分钟前
[论文阅读] 软件工程 | 解决Java项目痛点:DepUpdater如何平衡依赖升级的“快”与“稳”
java·开发语言·论文阅读
老华带你飞32 分钟前
记录生活系统|记录美好|健康管理|基于java+Android+微信小程序的记录生活系统设计与实现(源码+数据库+文档)
android·java·数据库·vue.js·生活·毕设·记录生活系统
HalvmånEver43 分钟前
Linux:基础开发工具(一)
linux·运维·服务器·开发语言·学习·进阶学习
Seven971 小时前
微服务/分布式 基础面试题
java
weixin_456588151 小时前
JVM(java虚拟机)
java·开发语言·jvm