我想弄清楚如何使用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. AbstractUser Django完整示例
- 2. GSAT不完整示例
- 3. 完整的Haskore示例
- 4. 完整的sklearn管道示例
- 5. 在jquery中完整日曆的示例
- 6. JQGrid和MVC完整工作示例
- 7. Lagom消息代理的完整示例
- 8. ASP.NET完整網站示例代碼
- 9. php中的gettext的完整示例
- 10. tastypie發佈和完整示例
- 11. parsec的完整解析器示例?
- 12. Stackless Scala免費Monads,完整示例
- 13. 不完整的實現示例幫助!
- 14. 完整的C++ i18n gettext()「hello world」示例
- 15. 適用於PHP的Fabric8持續交付的任何示例?
- 16. 在openshift docker實例上安裝Fabric8
- 17. 打印完整的例外
- 18. 在iPhone上顯示完整頁面iAd的示例
- 19. 演示所有PEP-8規則的完整代碼示例
- 20. Cytoscape.js示例代碼,需要動態填充節點和邊的完整示例
- 21. 使用模板比較器的完整示例
- 22. Gmail三段式動畫場景的完整工作示例?
- 23. ExtJS 3完整的應用程序示例
- 24. 使用Boost :: Signals for C++ Eventing的完整示例
- 25. 有人可以發佈NSNumber的完整示例用法嗎?
- 26. 創建最小完整的bug示例的好新手指導?
- 27. 找不到完整的php5.ini示例文件
- 28. 居住代碼示例:cytoscape.js初始化 - 不完整?
- 29. 需要使用軟鍵盤的完整示例
- 30. Eclipse RCP 3.6.2/P2/Junit測試的完整示例