我想弄清楚如何使用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测试的完整示例