java项目打包成 Docker 镜像几种方式

1.准备工作

安装 Docker:确保本地或服务器上已安装 Docker。 创建 Spring Boot 项目:假设你已经有一个 Spring Boot 项目。

2.使用 docker-maven-plugin 打包 Docker 镜像

(1)在 pom.xml 中添加插件


    
        
            com.spotify
            docker-maven-plugin
            1.2.2
            
                ${project.artifactId}:${project.version}
                ${project.basedir}/src/main/docker
                
                    
                        /
                        ${project.build.directory}
                        ${project.build.finalName}.jar
                    
                
            
        
    

(2)创建 Dockerfile

src/main/docker 目录下创建 Dockerfile 文件:

# 使用官方的 Java 8 镜像作为基础镜像
FROM openjdk:8-jdk-alpine
​
# 设置工作目录
WORKDIR /app
​
# 将打包好的 JAR 文件复制到容器中
COPY target/myapp-0.0.1-SNAPSHOT.jar app.jar
​
# 暴露端口
EXPOSE 8080
​
# 启动应用
ENTRYPOINT ["java", "-jar", "app.jar"]

(3)打包并构建 Docker 镜像

运行以下 Maven 命令:

mvn clean package docker:build

(4)运行 Docker 容器

docker run -p 8080:8080 myapp:0.0.1-SNAPSHOT

3. 使用 jib-maven-plugin 打包 Docker 镜像

(1)在 pom.xml 中添加插件


    
        
            com.google.cloud.tools
            jib-maven-plugin
            3.2.1
            
                
                    myapp:${project.version}
                
            
        
    

(2)打包并构建 Docker 镜像

运行以下 Maven 命令:

mvn clean package jib:dockerBuild

(3)运行 Docker 容器

docker run -p 8080:8080 myapp:0.0.1-SNAPSHOT

4. 使用 spring-boot-maven-plugin 打包 Docker 镜像

(1)在 pom.xml 中添加插件


 
     
         org.springframework.boot
         spring-boot-maven-plugin
         
             
                 myapp:${project.version}
             
         
     
 

(2)打包并构建 Docker 镜像

运行以下 Maven 命令:

mvn spring-boot:build-image

(3)运行 Docker 容器

docker run -p 8080:8080 myapp:0.0.1-SNAPSHOT

5. 总结

docker-maven-plugin:需要手动编写 Dockerfile,适合需要自定义镜像的场景。
jib-maven-plugin:无需 Dockerfile,直接构建镜像,适合简单场景。
spring-boot-maven-plugin:Spring Boot 官方支持,适合 Spring Boot 项目。

你可能感兴趣的:(eureka,云原生)