1. 手动构建
在jar所在目录编写DockFile
FROM java:8ENV ARTIFACTID xxxxxxENV ARTIFACTVERSION 1.0‐SNAPSHOTENV HOME_PATH /homeWORKDIR $HOME_PATHADD /$ARTIFACTID‐$ARTIFACTVERSION.jar $HOME_PATH/$ARTIFACTID.jarENTRYPOINT ["java", "‐jar", "xxxxxx.jar"]
执行
docker build -t xxxxxx:1.0-SNAPSHOT创建镜像创建容器
docker create ‐‐name xxx ‐t ‐p 8080:8080 ‐e PORT=8080 xxxxxx:1.0‐SNAPSHOT
启动容器
docker start xxx
2. maven插件自动构建
工程引入docker-maven-plugin
<build><!-- --><finalName>${project.artifactId}‐${project.version}</finalName><plugins><!-- maven打包插件 --><plugin><groupId>org.springframework.boot</groupId><artifactId>spring‐boot‐maven‐plugin</artifactId></plugin><!-- maven构建镜像插件:docker-maven-plugin --><plugin><groupId>com.spotify</groupId><artifactId>docker‐maven‐plugin</artifactId><version>1.0.0</version><!-- docker镜像相关的配置信息 --><configuration><!-- 镜像名,这里用工程名 --><imageName>${project.artifactId}‐${project.version}</imageName><!-- Dockerfile文件所在目录 --><dockerDirectory>${project.basedir}/src/main/resources</dockerDirectory><!-- TAG,这里用工程版本号 --><imageTags><imageTag>${project.version}</imageTag></imageTags> <imageName>${project.artifactId}:${project.version}</imageName><!-- 如下3个配置是持续集成结合Jenkins使用,没有Jenkins可以不用 --><!--<registryUrl>192.168.101.64:5000</registryUrl>--><!--<pushImage>true</pushImage>--><!--<imageName>192.168.101.64:5000/${project.artifactId}:${project.version}</imageName>--><!-- 构建镜像的配置信息 --><resources><resource><targetPath>/</targetPath><directory>${project.build.directory}</directory><include>${project.artifactId}‐${project.version}.jar</include></resource></resources></configuration></plugin></plugins></build>
在
src/main/resource目录编写DockerFileFROM java:8 ENV ARTIFACTID xxxxxx ENV ARTIFACTVERSION 1.0‐SNAPSHOT ENV HOME_PATH /home WORKDIR $HOME_PATH ADD /$ARTIFACTID‐$ARTIFACTVERSION.jar $HOME_PATH/$ARTIFACTID.jar ENTRYPOINT ["java", "‐jar", "xxxxxx.jar"]在工程根目录执行
mvn ‐f pom.xml clean package ‐DskipTests docker:build创建镜像成功
