Intellij IDEA 部署 SpringBoot 工程到 Docker Desktop 容器
Docker Desktop 设置
打开 Docker Desktop 面板,进入设置,找到 General ---> 并选中 Expose daemon on tcp://localhost:2375 without TLS,然后重启 docker desktop
Intellij IDEA 设置
下面信息为 Connection successful 说明没问题了。
在目标工程中的 pom.xml 引入 dockerfile-maven-plugin,例如:
xml
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.4.13</version>
<executions>
<execution>
<id>default</id>
<goals>
<!--默认执行 mvn package 时,同步执行 docker built,打包docker镜像。-->
<goal>build</goal>
<!--<goal>push</goal>-->
</goals>
</execution>
</executions>
<configuration>
<!--镜像仓库名称-->
<repository>mengweijin/${project.artifactId}</repository>
<!--镜像版本号-->
<tag>${project.version}</tag>
<buildArgs>
<!--传递到 Dockerfile 中的参数。-->
<JAR_FILE>${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
在目标工程中的 pom.xml 同级目录下创建一个 Dockerfile 文件。
Dockerfile
FROM openjdk:17.0.2-oraclelinux8
LABEL authors="mengweijin"
RUN mkdir -p /app/vitality/logs \
/app/vitality/temp
WORKDIR /app/vitality
ENV SERVER_PORT=8080 LANG=C.UTF-8 LC_ALL=C.UTF-8
EXPOSE ${SERVER_PORT}
ARG JAR_FILE
ADD ./target/${JAR_FILE} ./app.jar
ENTRYPOINT ["java", \
"-Djava.security.egd=file:/dev/./urandom", \
"-Dserver.port=${SERVER_PORT}", \
"-jar", "app.jar"]
此刻,当运行 maven package 时,就会自动打包 docker 镜像到 docker desktop 中。
在 IDEA 中创建并运行镜像容器
创建容器
点击 Apply 保存,点击 Run 直接启动容器。