1.创建SpringBoot项目
- 建项
- 建模块
2.编写项目
- 目录结构
- pom.xml
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<!--打包-->
<build>
<plugins>
<!--springboot打包-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.6.4</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<!--根据Dockerfile文件生成docker镜像-->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.4.13</version>
<executions>
<execution>
<id>default</id>
<goals>
<goal>build</goal>
<goal>push</goal>
</goals>
</execution>
</executions>
<!--镜像配置-->
<configuration>
<!--镜像名-->
<repository>micro0-hello</repository>
<!--镜像版本-->
<tag>${project.version}</tag>
<buildArgs>
<JAR_FILE>${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
</plugins>
</build>
- application.yml
server:
port: 8084
- HelloController
@RestController
public class HelloController {
@RequestMapping("/hello")
public String hello() {
return "hello";
}
}
- Micro0Application
@SpringBootApplication
public class Micro0Application {
public static void main(String[] args) {
SpringApplication.run(Micro0Application.class,args);
}
}
- 启动测试
3.编写Dockerfile
-
目录结构(Dockerfile文件与src同级)
-
Dockerfile
#添加Java8镜像来源
FROM java:8
#发布者信息
MAINTAINER cj
# 添加参数
ARG JAR_FILE
# 添加SpringBoot包,JAR_FILE参数就是从DockerMaven插件中指定的构建参数
ADD target/${JAR_FILE} app.jar
#统一端口
CMD ["--server.port=8084"]
#暴露端口
EXPOSE 8084
# 执行启动命令
ENTRYPOINT ["java","-jar","/app.jar"]
4.通过IDEA连接Docker
准备工作
- Docker上管理端口的暴露
- 下载docker插件(作者已经下过,以下截图不具体,可进行百度)
准备完毕
- 通过IDEA连接Docker
5.打包项目,通过Dockerfile自动生成镜像
- 打包package
- 打包成功
- 打包完后发现对应镜像已经创建完毕
6.通过IDEA创建容器(命令也可)
- 创建容器
- 容器创建成功