在Docker中部署Spring Boot项目

  • 2019 年 10 月 3 日
  • 笔记

???????????????? – ??????

??????????????????????????????HR???????????????????????????Docker???????????????????????????????????SpringBoot????????????????Docker???????SpringBoot???

??Spring Boot??

??????????Docker??????????SpringBoot?Web???????????pom.xml?????

<?xml version="1.0" encoding="UTF-8"?>  <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"           xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">      <modelVersion>4.0.0</modelVersion>        <groupId>cn.itweknow</groupId>      <artifactId>springboot-docker</artifactId>      <version>0.0.1-SNAPSHOT</version>      <packaging>jar</packaging>        <name>springboot-docker</name>      <description>Demo project for Spring Boot</description>        <parent>          <groupId>org.springframework.boot</groupId>          <artifactId>spring-boot-starter-parent</artifactId>          <version>2.1.0.RELEASE</version>          <relativePath/> <!-- lookup parent from repository -->      </parent>        <properties>          <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>          <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>          <java.version>1.8</java.version>      </properties>        <dependencies>          <dependency>              <groupId>org.springframework.boot</groupId>              <artifactId>spring-boot-starter-web</artifactId>          </dependency>            <dependency>              <groupId>org.springframework.boot</groupId>              <artifactId>spring-boot-starter-test</artifactId>              <scope>test</scope>          </dependency>      </dependencies>        <build>          <plugins>              <plugin>                  <groupId>org.springframework.boot</groupId>                  <artifactId>spring-boot-maven-plugin</artifactId>              </plugin>          </plugins>      </build>  </project>

????HelloController.java

@RestController  public class HelloController {        @RequestMapping("/hello")      public String hello() {          return "Hello Docker.";      }  }

???????????????web???????????????????????????????

??Docker

docker???maven?????docker-maven-plugin,?????????pom.xml??????????????????????OK??

<plugin>      <groupId>com.spotify</groupId>      <artifactId>docker-maven-plugin</artifactId>      <version>1.2.0</version>      <configuration>          <!-- ????????docker???? -->          <imageName>itweknow/${project.artifactId}</imageName>          <!-- ?????????springboot????????java???? -->          <baseImage>java:8</baseImage>          <!-- docker?????????? -->          <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>          <resources>          <resource>              <targetPath>/</targetPath>              <directory>${project.build.directory}</directory>              <include>${project.build.finalName}.jar</include>              </resource>          </resources>      </configuration>  </plugin>

??????????????????????????????????copy???linux?????docker??????????

????

copy???linux?????????????????????????????docker????

mvn clean  # -Dmaven.test.skip=true ???????  mvn package -Dmaven.test.skip=true  mvn docker:build

??????????????

mvn clean package docker:build -Dmaven.test.skip=true

?????docker images??????docker???????????

REPOSITORY                                           TAG                 IMAGE ID            CREATED             SIZE  itweknow/springboot-docker                           latest              f03b689cfc33        10 seconds ago      660MB

??Docker??

# -d ???????  # --name???????  # -p 8080:8080 ??????8080?????????8080?? ??????(??)??:????  docker run -d --name test -p 8080:8080 itweknow/springboot-docker

??docker ps???????????

CONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS              PORTS                    NAMES  652fd3ccac89        itweknow/springboot-docker   "java -jar /springbo…"   3 seconds ago       Up 2 seconds        0.0.0.0:8080->8080/tcp   test

?????????????docker?????????????http://???IP:8080/hello??????

???

????????????????Docker?????Spring Boot?????Docker?????????????????????????????????Github????

PS:??????????????????????????

????“?????”