1、在IDEA中直接编写Dockerfile 在src的同级目录下编写
FROM bellsoft/liberica-openjre-alpine:11-x86_64
WORKDIR /
ARG JAR_FILE
ADD ${JAR_FILE} /app.jar
ENV SERVER_PORT=9527 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
EXPOSE ${SERVER_PORT}
ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -Dserver.port=${SERVER_PORT} \
${JAVA_OPTS} \
-jar app.jar
环境依赖:需要本地安装Docker,并且IDEA需要配置Docker插件 还需要有docker私服仓库
1、docker下载
https://www.docker.com/products/docker-desktop/
2、docker私服仓库搭建
这里我是个人使用所以申请的是阿里云的docker私服仓库 一般公司会有docker仓库
新建一个命名空间 随便新建一个镜像仓库 是为了能知道自己docker仓库服务地址
供参考不要直接复制使用
docker pull docker.io/bitnami/redis:7.2.4
docker tag docker.io/bitnami/redis:7.2.4 registry.cn-beijing.aliyuncs.com/xueyou/redis:7.2.4
docker push registry.cn-beijing.aliyuncs.com/xueyou/redis:7.2.4
3、在父工程 pom文件配置 Docker的仓库Url和命名空间根据情况修改
<properties>
<!-- Docker仓库服务配置 -->
<docker.registry.url>registry.cn-beijing.aliyuncs.com</docker.registry.url>
<docker.namespace>xueyou</docker. Namespace>
<docker.spotify.version>1.4.13</docker.spotify.version>
</properties>
<build>
<finalName>k50-${project.name}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>${docker.spotify.version}</version>
<!-- 将Docker命令绑定到Maven的生命周期 跳过打包执行mvn clean package -Ddockerfile.skip -->
<executions>
<execution>
<id>default</id>
<goals>
<goal>build</goal>
<goal>push</goal>
</goals>
</execution>
</executions>
<configuration>
<repository>${docker.registry.url}/${docker.namespace}/${project.build.finalName}</repository>
<buildArgs>
<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
<tag>${project.version}</tag>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
子模块的pom文件需要加依赖
<build>
<plugins>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
通过jar包的方式部署到docker中,在同级目录下编写dockerfile文件
# 使用官方的 OpenJDK JRE 镜像作为基础镜像
FROM openjdk:11-jre-slim
# 将项目的 JAR 文件复制到镜像中
COPY target/your-project.jar /app/your-project.jar
# 设置工作目录
WORKDIR /app
# 定义容器启动时执行的命令
CMD ["java", "-jar", "your-project.jar"]