FROM openjdk:8-jdk-alpine
VOLUME /tmp COPY target/*.jar app.jar ENTRYPOINT ["java","-jar","/app.jar"] 复制代码
将Springboot使用Maven打包,在终端中传参进去,进行构建Images。java
docker build --build-arg=target/*.jar -t demo1/app .
#构建完成后启动容器
docker run -p 8080:8080 demo1/app
复制代码
FROM openjdk:8-jdk-alpine
VOLUME /tmp ARG JAR_FILE
COPY ${JAR_FILE} app.jar ENTRYPOINT ["sh", "-c", "java ${JAVA_OPTS} -jar /app.jar ${0} ${@}"] 复制代码
指定JVM参数和shell参数git
docker run -p 9000:9000 -e "JAVA_OPTS=-Ddebug -Xmx128m" demo1/app --server.port=9000
复制代码
这个在我另一篇文章有讲到,都比较简单,有啥问题请留言。github
github.com/spotify/doc… ,能力强的能够直接去看README.md。
简单介绍一下这个插件作啥用的docker
FROM openjdk:8-jre
ENTRYPOINT ["/usr/bin/java", "-jar", "/usr/share/myservice/app.jar"]
ARG JAR_FILE
ADD target/${JAR_FILE} /usr/share/myservice/app.jar 复制代码
在pom中添加shell
<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>myrep/${project.artifactId}</repository>
<!--指定tag -->
<tag>${project.version}</tag>
<buildArgs>
<!--指定参数jar-->
<JAR_FILE>${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
复制代码
最后在Idea Maven插件Plugins点击docker:build便可。或者输入命令bash
mvn com.spotify:dockerfile-maven-plugin:build
复制代码
Google开源项目Jib,对比上面那个插件Jib的Start数为7.8k,dockerfile-maven 为2.4k。
maven 插件app
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>1.6.0</version>
<configuration>
<!--配置基本镜像-->
<from>
<image>openjdk:8-jdk-alpine</image>
</from>
<!--配置最终推送的地址,仓库名,镜像名-->
<to>
<image>registry.hub.docker.com/maoduntt/test</image>
</to>
</configuration>
<!--绑定到maven lifecicle-->
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
</plugin>
复制代码
配置maven docker hub帐户和密码,在maven settings.xml中添加maven
<server>
<id>registry.hub.docker.com</id>
<username>你的dockerhub用户名</username>
<password>你的dockerhub密码</password>
</server>
复制代码
在idea maven插件中点击或者maven命令 mvn compile jib:buildTaride