Maven 構(gòu)建Spring Boot 的Docker鏡像
構(gòu)建項(xiàng)目,修改配置
通過 start.spring.io/ 構(gòu)建 Spring Boot 工程。
修改 pom 文件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- tag::plugin[] -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.3.6</version>
<configuration>
<!--suppress UnresolvedMavenProperty -->
<repository>${docker.image.prefix}/${project.artifactId}</repository>
</configuration>
</plugin>
<!-- end::plugin[] -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<!--<version>0.4.12</version>-->
<configuration>
<!-- 注意imageName一定要是符合正則[a-z0-9-_.]的,否則構(gòu)建不會(huì)成功 -->
<!-- 詳見:https://github.com/spotify/docker-maven-plugin Invalid repository name ... only [a-z0-9-_.] are allowed-->
<dockerHost>http://127.0.0.1:2375</dockerHost>
<imageName>docker-springboot</imageName>
<baseImage>java</baseImage>
<entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
</plugins>
</build>
需要注意的是 <dockerHost>http://127.0.0.1:2375</dockerHost>疹吃,如果本地有安裝 docker ,直接只用本地默認(rèn)即可,若未安裝冕屯,需要是遠(yuǎn)程的 docker 服務(wù)時(shí)需要在服務(wù)器配置 docker ,具體操作請(qǐng)移步Docker 遠(yuǎn)程連接拂苹。
添加 Dockerfile
注意 com.whforever.dockerspringboot.DockerSpringbootApplication 是指 Spring Boot 項(xiàng)目的代碼入口愕撰。
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG DEPENDENCY=target/dependency
COPY ${DEPENDENCY}/BOOT-INF/lib /app/lib
COPY ${DEPENDENCY}/META-INF /app/META-INF
COPY ${DEPENDENCY}/BOOT-INF/classes /app
ENTRYPOINT ["java","-cp","app:app/lib/*","com.whforever.dockerspringboot.DockerSpringbootApplication"]
構(gòu)建 構(gòu)建 Spring Boot 的 Docker 鏡像
執(zhí)行 maven 命令,執(zhí)行構(gòu)建
mvn clean package docker:build
執(zhí)行完成之后我們就可以在遠(yuǎn)程看到剛構(gòu)建好的 Spring Boot 的鏡像醋寝。
docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e5f2c7e4e7c1 docker-springboot:latest "java -jar /docker-s…" 22 hours ago Up 22 hours 0.0.0.0:8080->8080/tcp agitated_kilby
啟動(dòng) docker 鏡像
docker run -p 8080:8080 docker-springboot