Linux Docker 运行 Spring Boot 项目的步骤详解
简介
本文将介绍在 Linux 系统中使用 Docker 容器运行 Spring Boot 项目的详细步骤。通过使用 Docker 容器,我们可以提高开发的效率,同时也可以避免因本地环境不兼容而导致的问题。
步骤
步骤一:创建 Spring Boot 项目
首先,我们需要创建一个 Spring Boot 项目。这里通过 Spring Initializr 创建一个基于 Gradle 的项目,其它配置按需选择即可。
$ mkdir docker-spring-boot
$ cd docker-spring-boot
$ curl https://start.spring.io/starter.zip -d dependencies=web,devtools \
-d type=gradle-project \
-d packageName=com.example.docker \
-o docker-spring-boot.zip
$ unzip docker-spring-boot.zip
步骤二:编写 Dockerfile 文件
在项目根目录下创建一个 Dockerfile 文件,其中包含了打包 Spring Boot 应用的所有步骤。
# 基于 openjdk:8-jdk-alpine 镜像构建
FROM openjdk:8-jdk-alpine
# 复制应用构建产物到镜像中
COPY build/libs/*.jar app.jar
# 设置启动命令
ENTRYPOINT ["java","-jar","/app.jar"]
首先,我们在 Dockerfile 文件中使用 FROM
关键字来设置构建镜像的基础镜像。这里我们选择了 openjdk:8-jdk-alpine,该镜像基于 Alpine Linux 发行版,提供了 JDK 8 和一些常用的工具,镜像体积较小,非常适合作为基础镜像。
然后,我们使用 COPY
关键字将构建产物复制到镜像中。这里我们假定我们的 Spring Boot 应用已经经过 ./gradlew build
构建,并将应用构建产物放在了 build/libs 目录下。
最后,我们使用 ENTRYPOINT
关键字设置容器启动命令,其中 java -jar /app.jar
表示启动 Spring Boot 应用。
步骤三:构建 Docker 镜像
在编写完成 Dockerfile 文件后,我们需要使用 docker build
命令来构建 Docker 镜像。
$ docker build -t docker-spring-boot .
该命令中的 -t
参数用于指定构建后的镜像名称,.
表示 Dockerfile 文件所在的目录。
步骤四:运行 Docker 容器
完成 Docker 镜像的构建后,我们可以使用 docker run
命令来启动容器。
$ docker run --name docker-spring-boot -p 8080:8080 docker-spring-boot
该命令中的 --name
参数用于指定容器名称,-p
参数用于指定容器暴露的端口号。这里我们将容器内部的 8080 端口映射到主机的 8080 端口。
示例一:使用 Gradle 构建 Spring Boot 项目并在 Docker 中运行
$ mkdir docker-spring-boot
$ cd docker-spring-boot
$ curl https://start.spring.io/starter.zip -d dependencies=web,devtools \
-d type=gradle-project \
-d packageName=com.example.docker \
-o docker-spring-boot.zip
$ unzip docker-spring-boot.zip
$ cd docker-spring-boot
$ ./gradlew build
$ cd ..
$ echo "FROM openjdk:8-jdk-alpine\nCOPY docker-spring-boot/build/libs/*.jar app.jar\nENTRYPOINT [\"java\",\"-jar\",\"/app.jar\"]" > Dockerfile
$ docker build -t docker-spring-boot .
$ docker run --name docker-spring-boot -p 8080:8080 docker-spring-boot
示例二:使用 Maven 构建 Spring Boot 项目并在 Docker 中运行
$ mkdir docker-spring-boot
$ cd docker-spring-boot
$ curl https://start.spring.io/starter.zip -d dependencies=web,devtools \
-d type=maven-project \
-d packageName=com.example.docker \
-o docker-spring-boot.zip
$ unzip docker-spring-boot.zip
$ cd docker-spring-boot
$ ./mvnw package
$ cd ..
$ echo "FROM openjdk:8-jdk-alpine\nCOPY docker-spring-boot/target/*.jar app.jar\nENTRYPOINT [\"java\",\"-jar\",\"/app.jar\"]" > Dockerfile
$ docker build -t docker-spring-boot .
$ docker run --name docker-spring-boot -p 8080:8080 docker-spring-boot
结论
本文介绍了在 Linux 系统中使用 Docker 容器运行 Spring Boot 项目的详细步骤,并给出了基于 Gradle 和 Maven 两种构建工具的示例。通过使用 Docker 容器,我们可以提高开发的效率,同时也可以避免因本地环境不兼容而导致的问题。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Linux Docker运行springboot项目的步骤详解 - Python技术站