在工程下新建一个空文件,命名为Dockfile,注意一定要放到项目的根目录下面,否则会有问题。
以下是简单的demo,可根据自己的工程文件进行调整
# 该镜像需要依赖的基础镜像
FROM java:8-alpine
#FROM registry.ingageapp.com:5000/jdk:8
# 将targer目录下的jar包复制到docker容器目录下面
ADD target/dubbo-provider-0.0.1-SNAPSHOT.jar /home/springboot/dubbo-provider-0.0.1-SNAPSHOT.jar
# 声明服务运行端口
EXPOSE 5080
# 执行命令
CMD ["java","-jar","/home/springboot/dubbo-provider-0.0.1-SNAPSHOT.jar"]
# 指定维护者名称
#MAINTAINER Mirror 111
如果是使用docker-maven-plugin进行构建的话,需要在pom.xml中添加plugin,
<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>${project.basedir}</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
</plugins>
</build>
同时需要在maven的setting.xml文件中添加pluginGroup
<pluginGroups>
<pluginGroup>com.spotify</pluginGroup>
</pluginGroups>
之后开始构建docker镜像,使用以下命令
mvn package docker:build
[INFO] Building image docker/dubbo-provider
Step 1/4 : FROM java:8-alpine
---> 3fd9dd82815c
Step 2/4 : ADD target/dubbo-provider-0.0.1-SNAPSHOT.jar /home/springboot/dubbo-provider-0.0.1-SNAPSHOT.jar
---> 747d5c10b58d
Step 3/4 : EXPOSE 5080
---> Running in 14a34b6e418d
Removing intermediate container 14a34b6e418d
---> 46a2f875c764
Step 4/4 : CMD ["java","-jar","/home/springboot/dubbo-provider-0.0.1-SNAPSHOT.jar"]
---> Running in 12b397560d3d
Removing intermediate container 12b397560d3d
---> 999762c716ad
ProgressMessage{id=null, status=null, stream=null, error=null, progress=null, progressDetail=null}
Successfully built 999762c716ad
Successfully tagged docker/dubbo-provider:latest
[INFO] Built docker/dubbo-provider
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 03:15 min
[INFO] Finished at: 2022-06-07T11:07:59+08:00
[INFO] ------------------------------------------------------------------------
构建完成后查看docker镜像
docker images
启动镜像
docker run -p 5080:5080 -t docker/dubbo-provider:latest