编写Dockerfile
#FROM:基于java:8镜像构建
FROM openjdk:8
#EXPOSE:监听8080端口,暴露容器的8080端口,该端口余项目端口需要一致
EXPOSE 8080
#ARG:引用plugin中配置的 JAR_FILE 文件
ARG JAR_FILE
#ADD:将当前 target 目录下的 jar 放置在根目录下,命名为 tom.jar,推荐使用绝对路径。
ADD target/${JAR_FILE} /tom.jar
#ENTRYPOINT:执行命令 java -jar /tom.jar
ENTRYPOINT ["java", "-jar","/tom.jar"]
#打包成镜像
# mvn clean package dockerfile:build -Dmaven.test.skip=true
#结果为
#[root@VM-12-15-centos tom]# docker images
#REPOSITORY TAG IMAGE ID CREATED SIZE
#tom/tom 0.0.1-SNAPSHOT 28ddda16f21a 28 minutes ago 568MB
#jenkins/jenkins latest 63914f7b7fd6 2 months ago 474MB
#portainer/portainer-ce latest 1a0fb356ea35 3 months ago 294MB
#boot/10 latest ca586b8faec7 7 months ago 575MB
#nginx latest 89da1fb6dcb9 8 months ago 187MB
#jenkinsci/blueocean latest 04540a0bb985 18 months ago 579MB
#openjdk 8 b273004037cc 20 months ago 526MB
#运行容器,宿主端口:容器端口
#docker run -d -p 8080:8080 --name tom tom/tom:0.0.1-SNAPSHOT
#结果为
#CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
#e11339f87323 tom/tom:0.0.1-SNAPSHOT "java -jar /tom.jar" 32 minutes ago Up 32 minutes 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp tom
#33d9ac278812 portainer/portainer-ce:latest "/portainer" 52 minutes ago Up 52 minutes 8000/tcp, 9443/tcp, 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp portainer22
pom文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.my</groupId>
<artifactId>tom</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>tom</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<docker.image.prefix>tom</docker.image.prefix>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.7</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.16</version>
</dependency>
<!-- <dependency>-->
<!-- <groupId>org.mybatis.spring.boot</groupId>-->
<!-- <artifactId>mybatis-spring-boot-starter</artifactId>-->
<!-- <version>2.3.1</version>-->
<!-- </dependency>-->
<!-- 集成redis依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/cn.hutool/hutool-all -->
<!--Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,
使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.16</version>
</dependency>
<!-- lombok依赖 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!-- alibaba的fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.60</version>
</dependency>
<!-- 工具包 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.8.1</version>
</dependency>
<!-- rsa加密工具-->
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.55</version>
</dependency>
<!-- 计算内存大小-->
<dependency>
<groupId>org.openjdk.jol</groupId>
<artifactId>jol-core</artifactId>
<version>0.9</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<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 值 -->
<repository>${docker.image.prefix}/${project.artifactId}</repository>
<!-- 镜像的 TAG 值 -->
<tag>${project.version}</tag>
<!-- jar 名称,供Dockerfile 使用-->
<buildArgs>
<JAR_FILE>${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
</plugins>
</build>
</project>
本文含有隐藏内容,请 开通VIP 后查看