搭建SpringBoot项目

搭建一个简单的SpringBoot项目:

  1. 创建maven工程,pom为: ```xml <?xml version=”1.0” encoding=”UTF-8”?> <project xmlns=”http://maven.apache.org/POM/4.0.0

    1. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    4.0.0 org.springframework.boot spring-boot-starter-parent 2.5.6

    org.study test-docker pom 1.0-SNAPSHOT

    docker_boot 8 8

  1. 2. 新建Modulepom为:
  2. ```xml
  3. <?xml version="1.0" encoding="UTF-8"?>
  4. <project xmlns="http://maven.apache.org/POM/4.0.0"
  5. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  6. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  7. <parent>
  8. <artifactId>test-docker</artifactId>
  9. <groupId>org.study</groupId>
  10. <version>1.0-SNAPSHOT</version>
  11. </parent>
  12. <modelVersion>4.0.0</modelVersion>
  13. <artifactId>docker_boot</artifactId>
  14. <properties>
  15. <maven.compiler.source>8</maven.compiler.source>
  16. <maven.compiler.target>8</maven.compiler.target>
  17. </properties>
  18. <dependencies>
  19. <dependency>
  20. <groupId>org.springframework.boot</groupId>
  21. <artifactId>spring-boot-starter-web</artifactId>
  22. </dependency>
  23. <dependency>
  24. <groupId>org.springframework.boot</groupId>
  25. <artifactId>spring-boot-starter-actuator</artifactId>
  26. </dependency>
  27. <dependency>
  28. <groupId>org.springframework.boot</groupId>
  29. <artifactId>spring-boot-starter-test</artifactId>
  30. <scope>test</scope>
  31. </dependency>
  32. </dependencies>
  33. <build>
  34. <plugins>
  35. <plugin>
  36. <groupId>org.springframework.boot</groupId>
  37. <artifactId>spring-boot-maven-plugin</artifactId>
  38. </plugin>
  39. </plugins>
  40. </build>
  41. </project>
  1. 编写一个配置文件
    1. server:
    2. port: 6001
  1. 编写主启动类 ```java package com.study;

import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;

/**

  • @author tengyer 2022/05/06 16:34 */ @SpringBootApplication public class DockerBootApplication { public static void main(String[] args) {
    1. SpringApplication.run(DockerBootApplication.class, args);
    } } ```
  1. 编写一个Controller ```java package com.study.controller;

import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController;

import java.util.UUID;

/**

  • @author tengyer 2022/05/06 16:35 */ @RestController public class OrderController { @Value(“${server.port}”) private String port;

    @RequestMapping(“/order/docker”) public String helloDocker() {

    1. return "hello world \t" + port + "\t" + UUID.randomUUID().toString();

    }

    @RequestMapping(value = “/order/index”, method = RequestMethod.GET) public String index() {

    1. return "服务端口号:" + "\t" + port + "\t" + UUID.randomUUID().toString();

    } } ```

在Idea中运行没有问题时,将其使用maven的package打成jar包。

发布微服务项目到Docker容器

  1. 将项目jar包上传到服务器
  2. 编写Dockerfile ```dockerfile FROM openjdk:8-oracle MAINTAINER lee

在主机 /var/lib/docker目录下创建一个临时文件,并链接到容器的 /tmp

VOLUME /tmp

将jar包添加到容器中,并命名为 springboot_docker.jar

ADD docker_boot-1.0-SNAPSHOT.jar /springboot_docker.jar

运行jar包

RUN bash -c ‘touch /springboot_docker.jar’ ENTRYPOINT [“java”, “-jar”, “/springboot_docker.jar”]

SpringBoot项目配置的端口号为6001,需要将6001暴露出去

EXPOSE 6001

  1. 3. 构建镜像
  2. ```shell
  3. docker build -t springboot_docker:1.0 .
  1. 启动容器
    1. docker run -d -p 6001:6001 --name springboot springboot_docker:1.0