1.整合docker镜像打包
约 683 字大约 2 分钟
SpringBoot项目整合docker,打包镜像工程演示
I. 整合步骤
1. 基本环境
本项目借助SpringBoot 2.2.1.RELEASE
+ maven 3.5.3
+ IDEA
+ MAC
进行开发
首先确保本机有安装docker,对于docker基本知识点,可以参考
2. pom配置
创建一个基本的SpringBoot项目之后,关键是设置pom.xml
文件,我们主要借助docker-maven-plugin
来打镜像包
一个可用的配置如下
<artifactId>400-docker-demo</artifactId>
<properties>
<docker.prefix>springboot</docker.prefix>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
<mainClass>com.git.hui.boot.docker.Application</mainClass>
</configuration>
</plugin>
<!--加入maven插件 docker-maven-plugin -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.13</version>
<configuration>
<!--镜像仓库源-->
<imageName>${docker.prefix}/${project.artifactId}</imageName>
<!--docker配置文件的路径-->
<dockerDirectory>./</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
</plugins>
</build>
3. Dockerfile 文件
接下需要配置我们自己的dockerfile文件,在项目根目录下,新建文件名Dockerfile
,如果路径有修改,需要调整上面pom配置中的dockerDirectory
参数
FROM openjdk:8-jdk-alpine as builder
MAINTAINER yihui
# 创建工作目录
RUN mkdir -p /home/yihui/workspace/app
# 将jar拷贝过去
COPY /target/400-docker-demo-0.0.1-SNAPSHOT.jar /home/yihui/workspace/app/app.jar
# 将我们预期的文件拷贝过去
COPY /readme.md /home/yihui/workspace/app/readme.md
# 指定工作目录
WORKDIR /home/yihui/workspace/app
# 运行jar
ENTRYPOINT ["java", "-jar", "app.jar"]
关于dockerfile语法,可以参考
我们上面的case,就是拉一个jdk8的运行环境,将打的jar包重命名为app.jar到指定目录,同时使用命令java -jar app.jar
来启动应用
4. 测试demo
提供一个最基础的demo实例
@SpringBootApplication
@RestController
public class Application {
@GetMapping(path = {"", "/"})
public String hello() {
return "hello " + UUID.randomUUID();
}
public static void main(String[] args) {
SpringApplication.run(Application.class);
}
}
打包命令 mvn clean package docker:build -DskipTests=true
注意
- 打包的前提是docker已经启动了
打包成功之后,可以看到会多一个docker镜像
docker images
运行镜像并测试
# 运行
docker run -i -d --name ddemo -p 8080:8080 -t springboot/400-docker-demo
# 测试
curl 'http://127.0.0.1:8080'
II. 其他
0. 项目
Loading...