Maven:构build儿童项目的Docker镜像
我的项目有以下结构:
pom.xml | x----child1 | | | x----pom.xml | x----child2 | x----pom.xml
有一个pom父亲和两个孩子poms。 孩子的构build使用Spotify插件来生成项目的Docker镜像。 我的问题是,我怎样才能从根目录调用两个构build? 我基本上需要调用在子模块上构build的spotify插件。 我试图使用
mvn clean install
但是孩子是用maven-compiler-plugin构build的,而不是用docker-maven-plugin构build的。
这是我在孩子身上使用的版本:
<build> <plugins> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>${spotify.plugin.version}</version> <configuration> <imageName>childImage</imageName> <dockerDirectory>${project.build.directory}/../src/docker</dockerDirectory> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> </plugins> </build>
在爸爸,我已经定义了这样的模块。
<modules> <module>child1</module> <module>child2</module> </modules>
感谢您的build议!
你有几个选项来解决这个问题:
- 在父pom的部分中configuration插件,但默认插件configuration跳过docker构build,并覆盖子模块中的不跳过
- 只在子模块中configuration它,并将构build目标绑定到包阶段。
我一直在使用[2]以下在子pom.xml中:
<build> <plugins> ... <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.4.13</version> <executions> <execution> <goals> <goal>build</goal> </goals> <phase>package</phase> </execution> </executions> <configuration> <imageName>example</imageName> <baseImage>example</baseImage> <resources> <resource> <targetPath>/</targetPath> <directory>target</directory> <include>example.war</include> </resource> </resources> </configuration> </plugin> ... </plugins> </build>
尝试添加以下内容到插件:
<executions> <execution> <phase>install</phase> <goals> <goal>build</goal> </goals> </execution> </executions>
- elasticsearch 5.5.3 Java客户端API NoNodeAvailableException与docker
- Docker镜像和数据库服务器集成
- Docker组合 – 无法在任何已知的服务器上执行请求
- 将魔术string部署到泊坞窗时,会将其设置为SPRING_CONFIG_NAME
- Docker-compose从链接迁移到networkingMongoDB数据库问题
- Spring引导应用程序不适用于AWS
- 在云代工的Docker中启用HTTPS的Spring Boot应用程序
- 访问网页问题(上传到wildfly)
- docker-compose – 外部化spring application.properties