Docker deployment springboot project example analysis

Docker deployment springboot project example analysis

This article mainly introduces the example analysis of docker deployment springboot project. The example code is introduced in great detail in this article, which has certain reference value for everyone's study or work. Friends in need can refer to it.

Create a project

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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.9.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
  </parent>
  <groupId>com.topcheer</groupId>
  <artifactId>docker</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>docker</name>
  <description>Demo project for Spring Boot</description>
​
  <properties>
    <java.version>1.8</java.version>
    <docker.image.prefix>topcheer</docker.image.prefix>
  </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>
       <plugin>
      <groupId>com.spotify</groupId>
      <artifactId>docker-maven-plugin</artifactId>
      <version>1.0.0</version>
      <configuration>
        <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
        <dockerDirectory>src/main/docker</dockerDirectory>
        <resources>
          <resource>
            <targetPath>/</targetPath>
            <directory>${project.build.directory}</directory>
            <include>${project.build.finalName}.jar</include>
          </resource>
        </resources>
      </configuration>
    </plugin>
    </plugins>
  </build>
​
</project>

Startup Class

@SpringBootApplication
@Controller
public class DockerApplication {
  public static void main(String[] args) {
    SpringApplication.run(DockerApplication.class, args);
  }
  @RequestMapping("/user/find")
  @ResponseBody
  public Object findUser(){
    Map<String, String > map = new HashMap<>();
    map.put("name", "xdclass.net");
    map.put("age","28");
    return map;
  }
}

Since Harbor is not installed, the image cannot be pushed to the private image repository, so it is executed manually first.

mvn install, then put the dockerfile and jar package together

[root@topcheer docker]# ll
Total usage 16452
-rw-r--r-- 1 root root 168 Oct 28 14:24 Dockerfile
-rw-r--r-- 1 root root 16842487 Oct 28 14:17 docker.jar
[root@topcheer docker]# cat Dockerfile
FROM java:8
VOLUME /tmp
ADD docker.jar app.jar
RUN bash -c 'touch /app.jar'
EXPOSE 8080
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
[root@topcheer docker]#

Compile into image and start

[root@topcheer docker]# docker build -f Dockerfile -t boot .
Sending build context to Docker daemon 16.85 MB
Step 1/6: FROM java:8
 ---> d23bdf5b1b1b
Step 2/6: VOLUME /tmp
 ---> Running in 35037b5a7791
 ---> e96b96457c78
Removing intermediate container 35037b5a7791
Step 3/6 : ADD docker.jar app.jar
 ---> 06bcfdcff437
Removing intermediate container 2e2e5e559ae4
Step 4/6 : RUN bash -c 'touch /app.jar'
 ---> Running in 16441febc271
​
 ---> 1779caa23f77
Removing intermediate container 16441febc271
Step 5/6: EXPOSE 8080
 ---> Running in 14dd752ce247
 ---> 505044f5cdf8
Removing intermediate container 14dd752ce247
Step 6/6 : ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -jar /app.jar
 ---> Running in 832e4ca95dd2
 ---> 1cb7bd139478
Removing intermediate container 832e4ca95dd2
Successfully built 1cb7bd139478
[root@topcheer docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
boot latest 1cb7bd139478 About a minute ago 677 MB
registry.cn-hangzhou.aliyuncs.com/dalianpai/topcheer zipkin 17c2bb09f482 6 days ago 154 MB
docker.io/mysql latest c8ee894bd2bd 11 days ago 456 MB
elasticsearch latest 874179f19603 4 weeks ago 771 MB
docker.io/nacos/nacos-server latest a4229ac5cc19 4 weeks ago 710 MB
springbootdemo4docker latest cd13bc7f56a0 5 weeks ago 678 MB
docker.io/tomcat latest ee48881b3e82 6 weeks ago 506 MB
docker.io/rabbitmq latest a00bc560660a 6 weeks ago 147 MB
docker.io/centos-latest 67fa590cfc1c 2 months ago 202 MB
docker.io/redis latest f7302e4ab3a8 2 months ago 98.2 MB
docker.io/rabbitmq 3.7.16-management 3f92e6354d11 3 months ago 177 MB
docker.io/elasticsearch 6.8.0 d0b291d7093b 5 months ago 895 MB
docker.io/hello-world latest fce289e99eb9 10 months ago 1.84 kB
docker.io/java 8 d23bdf5b1b1b 2 years ago 643 MB
[root@topcheer docker]# docker run -d -p 8080:8080 boot
882ff5209aa2f40972a914b901750a50320faea65100b33e57b9c8a41533ca0b

test

The above is the full content of this article. I hope it will be helpful for everyone’s study. I also hope that everyone will support 123WORDPRESS.COM.

You may also be interested in:
  • How to deploy SpringBoot project using Dockerfile
  • How to deploy SpringBoot project using Docker
  • Detailed explanation of the docker deployment practice of the springboot project
  • Java remote one-click deployment of springboot to Docker through Idea
  • Detailed steps to deploy SpringBoot projects using Docker in Idea
  • Deploy the springboot project to docker based on idea
  • Detailed steps for one-click automated deployment of Linux+Docker+SpringBoot+IDEA
  • Implementation of Springboot packaging as Docker image and deployment
  • How to implement automatic deployment of Springboot service Docker
  • idea uses docker plug-in to achieve one-click automated deployment

<<:  JavaScript to achieve simple tab bar switching case

>>:  Combining insert and select to implement the method of "inserting the maximum value of a field in the database + 1"

Recommend

Linux Centos8 Create CA Certificate Tutorial

Install Required Files Yum install openssl-* -y C...

Javascript destructuring assignment details

Table of contents 1. Array deconstruction 2. Obje...

SQL query for users who have logged in for at least n consecutive days

Take 3 consecutive days as an example, using the ...

Two implementations of front-end routing from vue-router

Table of contents Mode Parameters HashHistory Has...

How to quickly clean up billions of data in MySQL database

Today I received a disk alarm exception. The 50G ...

Vue uses canvas to realize image compression upload

This article shares the specific code of Vue usin...

Detailed explanation of uniapp painless token refresh method

When the front-end requests the interface, it is ...

What scenarios are not suitable for JS arrow functions?

Table of contents Overview Defining methods on an...

A brief talk about MySQL pivot tables

I have a product parts table like this: part part...

MySQL table auto-increment id overflow fault review solution

Problem: The overflow of the auto-increment ID in...

HTML hyperlinks explained in detail

Hyperlink Hyperlinks are the most frequently used ...

MySQL statement arrangement and summary introduction

SQL (Structured Query Language) statement, that i...

Summary of web designers' experience and skills in learning web design

As the company's influence grows and its prod...

jQuery implements Table paging effect

This article shares the specific code of jQuery t...