引入Maven Build Plugins: dockerfile-maven-plugin
https://github.com/spotify/dockerfile-maven
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| <build> <plugins> <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>bbsafe/mvn-docker-demo</repository> <tag>${project.version}</tag> <buildArgs> <JAR_FILE>${project.build.finalName}.jar</JAR_FILE> </buildArgs> </configuration> </plugin> </plugins> </build>
|
設置Jar包Main方法
添加以下插件并設置mainClass
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.2.2</version> <configuration> <archive> <index>true</index> <manifest> <addClasspath>true</addClasspath> <mainClass>cc.bbsafe.Main</mainClass> </manifest> <manifestEntries> <mode>development</mode> <key>value</key> </manifestEntries> </archive> </configuration> </plugin>
|
編寫Dockerfile
1 2 3 4 5 6 7 8 9 10
| FROM openjdk:8-jre MAINTAINER Fred Lai <test@test.com>
ENTRYPOINT ["/usr/bin/java", "-jar", "/usr/share/myservice/myservice.jar"]
# Add Maven dependencies (not shaded into the artifact; Docker-cached) ADD target/lib /usr/share/myservice/lib # Add the service itself ARG JAR_FILE ADD target/${JAR_FILE} /usr/share/myservice/myservice.jar
|
Docker run
1
| docker run bbsafe/mvn-docker-demo:1.0-SNAPSHOT -d
|