本文共 2837 字,大约阅读时间需要 9 分钟。
前文我们已经构建了JDK运行环境的镜像,现在主要任务是将Spring Boot项目打包到该镜像中,形成一个新的镜像springboot-docker。通过这个镜像,我们可以轻松启动容器,并通过端口映射访问我们的Spring Boot项目。
pom.xml文件首先,我们需要编写一个pom.xml文件来定义项目的依赖和打包配置。以下是完整的pom.xml文件内容:
4.0.0 com.xxx springboot-docker 0.0.1-SNAPSHOT jar springboot-docker http://maven.apache.org UTF-8 org.springframework.boot spring-boot-starter-parent 2.0.4.RELEASE org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-maven-plugin com.spotify docker-maven-plugin 1.1.1 local/${project.artifactId} src/main/docker / ${project.build.directory} ${project.build.finalName}.jar
App.java接下来,我们需要编写一个启动类App.java,这个类既充当Spring Boot的启动类,也同时作为一个简单的控制器。
package com.xxx.springbootwithdocker;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@RestControllerpublic class App { public static void main(String[] args) { SpringApplication.run(App.class, args); } @GetMapping("/") public String index() { return "{\"id\":\"1001\",\"content\":\"this is a docker\"}"; }} 在src/main目录下新建一个docker文件夹,并添加一个Dockerfile文件。文件内容如下:
FROM local/centos7-jdk8VOLUME /tmpADD springboot-docker-0.0.1-SNAPSHOT.jar app.jarRUN sh -c 'touch /app.jar'ENV JAVA_OPTS=""ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar"]
在Spring Boot项目的根目录下,执行以下命令:
mvn clean package docker:build
执行完毕后,会生成一个名为local/springboot-docker的镜像。
完成镜像构建后,我们可以通过以下命令启动一个容器并进行端口映射:
docker run -d -p 18080:8080 local/springboot-docker
启动成功后,你可以通过浏览器访问http://localhost:18080/来访问你的Spring Boot项目。
到此为止,我们已经完成了Spring Boot项目与Docker镜像的集成配置工作。整个过程主要包括以下几个步骤:
pom.xml文件,配置项目依赖和打包选项。App.java,实现基本的Web控制器功能。Dockerfile文件,定义镜像构建流程。通过以上步骤,我们成功地将Spring Boot项目打包到Docker镜像中,并通过端口映射实现了对项目的访问。
转载地址:http://erhy.baihongyu.com/