我想弄清楚如何使用fabric8 docker-maven-plugin構建一個spring boot docker鏡像。該文檔包含位和字節,我顯然缺少一些東西。有沒有人有一個完整的pom.xml的例子呢?fabric8 springboot完整示例
1
A
回答
2
如果你不必使用那個插件,我推薦spotify的docker-maven-plugin
。安裝完成後,您可以執行來構建泊塢窗圖像。
您pom.xml
看起來是這樣的:
...
<properties>
<docker.image.prefix>springio</docker.image.prefix>
</properties>
<build>
<plugins>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.11</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerDirectory>src/main/docker</dockerDirectory>
<buildArgs>
<finalName>${project.build.finalName}.jar</finalName>
</buildArgs>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
</plugins>
</build>
...
你Dockerfile
在src/main/docker
看起來是這樣的:
FROM openjdk:8u102-jre
ARG finalName
ADD $finalName /my-app.jar
ENTRYPOINT ["java","-jar","/my-app.jar"]
參考文獻:
1
如果您只想快速入門,那麼fabric8 fabric8-maven-plugin文檔很難挖掘到,所以這裏有一個快速示例,您可以獲取構建Docker映像所需的所有內容。
首先,請確保docker
位於您的路徑上,並且Docker守護進程正在運行。運行docker ps
並確保這樣的迴應:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
添加到您的pom.xml與
<build>
<plugins>
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>fabric8-maven-plugin</artifactId>
<configuration>
<verbose>true</verbose>
<images>
<image>
<!-- Replace your-project-name -->
<name>your-project-name:${project.version}</name>
<build>
<!-- This is the same FROM used in a Dockerfile -->
<from>vixns/java8</from>
<!-- This is the same ENTRYPOINT used in a Dockerfile -->
<entryPoint>
<exec>
<arg>java</arg>
<!-- This extra argument is so Tomcat can start faster due to lack of entropy -->
<arg>-Djava.security.egd=file:/dev/./urandom</arg>
<arg>-jar</arg>
<!-- /maven/ is the default dir that the plugin copies your artifact to -->
<arg>/maven/${project.artifactId}.${project.packaging}</arg>
</exec>
</entryPoint>
<assembly>
<!-- This is a predefined assembly.xml that will only copy your final artifact to the Docker image -->
<descriptorRef>artifact</descriptorRef>
</assembly>
</build>
</image>
</images>
</configuration>
</plugin>
</plugins>
</build>
注意運行:如果你想使用mvn docker:start
你需要額外的設置命令。您不必使用它,如果您願意,可以使用標準docker
命令。
0
Here is one of使用fabric8的工作示例。該項目使用Spring Boot Docker鏡像,然後將其鏈接到mongodb。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.20.0</version>
<configuration>
<!--<dockerHost>tcp://REMOTE_IP:2375</dockerHost> -->
<images>
<image>
<name>springboot-mongo-dockerimage:${project.version}</name>
<alias>springboot-mongo-dockerimage</alias>
<build>
<dockerFileDir>${project.basedir}</dockerFileDir>
</build>
<run>
<namingStrategy>alias</namingStrategy>
<dependsOn>
<container>mongo</container>
</dependsOn>
<links>
<link>mongo</link>
</links>
<ports>
<port>8080:8080</port>
</ports>
</run>
</image>
</images>
</configuration>
<executions>
<execution>
<id>start</id>
<phase>pre-integration-test</phase>
<goals>
<goal>stop</goal>
<goal>build</goal>
<goal>start</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
您可以follow this link的分步說明
然而,而不是建立從fabric8 Maven插件圖片,你可以使用Dockerfile我覺得這更方便的使用,這就是爲什麼你會發現
<build>
<dockerFileDir>${project.basedir}</dockerFileDir>
</build>
DokcerFile
FROM java:8
VOLUME /tmp
ADD target/Boot-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 8080
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Dspring.data.mongodb.uri=mongodb://mongo/test", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
如果要將圖像推送到Docker中心註冊表,則可以使用this link。
相關問題
- 1. 完整的Haskore示例
- 2. Lagom消息代理的完整示例
- 3. tastypie發佈和完整示例
- 4. php中的gettext的完整示例
- 5. 完整的C++ i18n gettext()「hello world」示例
- 6. 在jquery中完整日曆的示例
- 7. parsec的完整解析器示例?
- 8. 適用於PHP的Fabric8持續交付的任何示例?
- 9. 在openshift docker實例上安裝Fabric8
- 10. 演示所有PEP-8規則的完整代碼示例
- 11. 在iPhone上顯示完整頁面iAd的示例
- 12. 需要使用軟鍵盤的完整示例
- 13. 尋找一個簡單但完整的SSIS示例或教程
- 14. 簡潔但完整的WPF應用程序示例?
- 15. 使用Boost :: Signals for C++ Eventing的完整示例
- 16. 請求完整的,可編譯的libxml2 sax示例
- 17. 有人可以發佈NSNumber的完整示例用法嗎?
- 18. 是否有任何電梯+ Scalate完整示例?
- 19. 創建最小完整的bug示例的好新手指導?
- 20. 如何以編程方式執行RotateAnimations的完整示例?
- 21. 標準NS3協議標題示例是否完整?
- 22. 一個使用excel-builder.js的完整示例
- 23. 具有完整示例應用程序的jQuery書籍?
- 24. 使用模板比較器的完整示例
- 25. 完整的'帶有oauth支撐的django活塞'示例
- 26. Eclipse RCP 3.6.2/P2/Junit測試的完整示例
- 27. 使用WCF上傳圖像RESTFul服務完整工作示例
- 28. TwitPic API的完整教程和示例應用程序
- 29. jFugue從完整指南v5中的ChordProgression示例不起作用
- 30. 使用Prism 4的完整示例應用程序4