Here we mainly use spring-boot out of the box, which can generate a standalone program, and the maven plug-in docker-maven-plugin The main steps here
A simple Spring Boot project Take spring boot 2.0 as an example Add parament dependency in pom.xml file <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE</version> </parent> Add web and test dependencies <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> Create a Controller with an index() method that returns: Hello Docker! @RestController public class Controller { @RequestMapping("/") public String index() { return "Hello Docker!"; } } Startup Class @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } After adding, start the project. After successful startup, open the browser: http://localhost:8080/, and the page returns: Hello Docker!, indicating that the Spring Boot project is configured normally. Add dcoker-maven-plugin Add the Docker image prefix to the properties node in pom.xml <properties> <docker.image.prefix>springboot</docker.image.prefix> </properties> Add the docker build plugin in plugins <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.finalNmae}.jar</include> </resource> </resources> </configuration> </plugin> </plugins> </build> Writing a Dockerfile Create a Dockerfile file in the directory src/main/docker. The Dockerfile file is used to explain how to build the image. FROM openjdk:8-jdk-alpine VOLUME /tmp ADD spring-boot-docker-1.0.jar app.jar ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] EXPOSE 8080 This Dockerfile is very simple. It builds the JDK basic environment and adds the Spring Boot Jar to the image. Here is a brief description:
Generate docekr image A Docker environment is required to package the Spring Boot project. Three dependencies are required
If there is no error when running Enter the project directory mvn package -Dmavne.test.skip=true java -jar target/spring-boot-docker-1.0.jar If it can run normally, it means there is no problem with the jar package. Then build the image mvn docker:build If build success is displayed, it is successful. Use docker images to view the built image Run the image docker run -p 8080:8080 -t springboot/spring-boot-docker Then curl http://127.0.0.1:8080 and you can see Hello Docker! is returned, indicating success 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 build a drag and drop plugin using vue custom directives
>>: Briefly describe the difference between Redis and MySQL
1. CPU utilization sar -p (view all day) sar -u 1...
This article has compiled some so-called specific...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML ...
Table of contents 1. Array flattening (also known...
This article example shares the specific code of ...
Table of contents 1. Introduction 2. Main text 2....
Red and pink, and their hexadecimal codes. #99003...
Configure multiple servers in nginx.conf: When pr...
Implementation ideas The outermost is a big circl...
After the form is submitted, the returned HTML pag...
Good database specifications help reduce the comp...
first step Delete it once with the built-in packa...
<br />Just like an article, our web pages sh...
1. Unzip mysql-8.0.21-winx64 2. Configure environ...
Previously, react.forwardRef could not be applied...