如何使用 Maven 对 Spring Boot 应用程序进行 Docker 化

Docker 是一个开源容器化平台,用于在隔离环境中构建、运行和管理应用程序。容器与另一个容器隔离,并捆绑其软件、库和配置文件。在本文中,我们将讨论如何对 Spring Boot 应用程序进行 dockerize 以进行部署。

先决条件:在继续之前,请确保您的计算机上已安装 Node 和 docker。

设置 Spring Boot 应用程序

步骤 1:

使用 https://start.spring.io 创建骨架应用程序。

步骤 2:

现在使用以下配置创建一个maven项目。输入所有详细信息后,单击“生成”按钮下载项目。

如何使用 Maven 对 Spring Boot 应用程序进行 Docker 化_应用程序

步骤 3:

解压压缩文件并在您选择的 IDE 中打开它。

如何使用 Maven 对 Spring Boot 应用程序进行 Docker 化_docker_02

 

如何使用 Maven 对 Spring Boot 应用程序进行 Docker 化_应用程序_03

 

步骤 4:

打开项目的基础java文件,并将新的控制器添加到应用程序的基类中。

如何使用 Maven 对 Spring Boot 应用程序进行 Docker 化_spring_04

@RequestMapping("/")
public String home() {
    return "Dockerizing Spring Boot Application";
}

步骤 5:

现在,添加RestController注释并导入所需的包。最后,您的 Application.java 文件应该如下所示。

package com.docker.spring; 

import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RestController; 

@SpringBootApplication
@RestController
public class Application { 

	@RequestMapping("/") 
	public String home() { 
		return "Dockerizing Spring Boot Application"; 
	} 

	public static void main(String[] args) { 
		SpringApplication.run(Application.class, args); 
	} 

}

步骤 6:

现在通过运行以下命令启动应用程序 

$ ./mvnw spring-boot:run

如何使用 Maven 对 Spring Boot 应用程序进行 Docker 化_应用程序_05

如何使用 Maven 对 Spring Boot 应用程序进行 Docker 化_docker_06

步骤 7:

导航到 http://localhost:8080 来测试应用程序

如何使用 Maven 对 Spring Boot 应用程序进行 Docker 化_应用程序_07


项目结构:此时项目结构应如下所示:

如何使用 Maven 对 Spring Boot 应用程序进行 Docker 化_spring_08

 

Docker 化我们的应用程序

现在使用 Maven 生成器创建一个新的 jar 文件。

$ ./mvnw clean package

如何使用 Maven 对 Spring Boot 应用程序进行 Docker 化_spring_09

如何使用 Maven 对 Spring Boot 应用程序进行 Docker 化_应用程序_10

在我们项目的根目录下创建一个新的 Dockerfile

$ touch Dockerfile

如何使用 Maven 对 Spring Boot 应用程序进行 Docker 化_spring_11

将以下内容粘贴到 Dockerfile 中

# Fetching latest version of Java
FROM openjdk:18
 
# Setting up work directory
WORKDIR /app

# Copy the jar file into our app
COPY ./target/spring-0.0.1-SNAPSHOT.jar /app

# Exposing port 8080
EXPOSE 8080

# Starting the application
CMD ["java", "-jar", "spring-0.0.1-SNAPSHOT.jar"]

现在使用 docker build 命令创建 docker 镜像

$ docker run -d -p [host_port]:[container_port] –name [container_name] [image_id/image_tag]

如何使用 Maven 对 Spring Boot 应用程序进行 Docker 化_docker_12

  • -t:图像的名称和标签
  • . :构建过程的上下文

构建过程完成后,您将收到新映像的 ID 和标签。

如何使用 Maven 对 Spring Boot 应用程序进行 Docker 化_spring_13

通过运行创建一个 docker 容器

$ docker run -d -p [host_port]:[container_port] –name [container_name] [image_id/image_tag]

如何使用 Maven 对 Spring Boot 应用程序进行 Docker 化_docker_14

$ docker container ps

如何使用 Maven 对 Spring Boot 应用程序进行 Docker 化_docker_15

  • -d:运行容器,同时打印容器ID。
  • -p:为我们的容器映射端口
  • –name:为容器指定名称

通过运行验证容器是否创建成功

$ docker container ps

如何使用 Maven 对 Spring Boot 应用程序进行 Docker 化_spring_16

 

项目结构:这就是项目结构此时应呈现的样子。

如何使用 Maven 对 Spring Boot 应用程序进行 Docker 化_docker_17

在浏览器中导航到 http://localhost:8080/ 以查看 Spring Boot 应用程序。

如何使用 Maven 对 Spring Boot 应用程序进行 Docker 化_spring_18



注意:如果在执行上述步骤时遇到任何问题,可以参考 docker 官网链接相关的命令,