springboot构建docker镜像
- 行业动态
- 2023-12-25
- 1
准备工作
在开始制作Docker镜像之前,我们需要确保已经安装了Docker,接下来,我们将创建一个简单的SpringBoot(2.3)应用,并将其打包成一个可执行的JAR文件,以下是创建一个简单的SpringBoot应用的步骤:
1、创建一个新的Maven项目,并在pom.xml文件中添加以下依赖:
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
2、在src/main/java目录下创建一个名为Application.java的文件,并添加以下代码:
package com.example.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
3、在src/main/resources目录下创建一个名为application.properties的文件,并添加以下内容:
server.port=8080
4、在项目根目录下运行以下命令,以打包应用为可执行的JAR文件:
mvn clean package
创建Dockerfile
接下来,我们需要创建一个Dockerfile,用于构建包含我们的SpringBoot应用的Docker镜像,在项目根目录下创建一个名为Dockerfile的文件,并添加以下内容:
使用官方的Java运行时基础镜像 FROM openjdk:8-jdk-alpine as build-stage 将项目的jar文件复制到容器中的/app目录下,并设置工作目录为/app COPY target/demo-0.0.1-SNAPSHOT.jar /app/demo.jar WORKDIR /app ENTRYPOINT ["java","-jar","/app/demo.jar"]
构建Docker镜像
在项目根目录下运行以下命令,以构建包含我们的SpringBoot应用的Docker镜像:
docker build -t my-springboot-app --build-arg JAR_FILE=target/demo-0.0.1-SNAPSHOT.jar .
运行Docker容器并查看日志输出
运行以下命令,以启动一个新的Docker容器,并查看其日志输出:
docker run -d --name my-springboot-container my-springboot-app > logs.txt & tail -f logs.txt & wait $! 将日志输出重定向到logs.txt文件,并实时查看其内容(需要按Ctrl+C停止查看)
问题与解答
1、Q:如何在Docker容器中运行多个实例?A:可以使用docker run命令多次启动容器,docker run -d --name my-springboot-container1 my-springboot-app && docker run -d --name my-springboot-container2 my-springboot-app,这将同时启动两个名为my-springboot-container1和my-springboot-container2的容器。
本站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本站,有问题联系侵删!
本文链接:http://www.xixizhuji.com/fuzhu/338950.html