在docs https://github.com/spotify/dockerfile-maven中,它说:
例如,dockerCompose.yml看起来可能如下所示:
service-a:
build: a/
ports:
- '80'
service-b:
build: b/
links:
- service-a现在,对接组合和对接组合构建将如预期的那样工作。
但是如何编写pom.xml文件,仍然像没有使用撰写一样?设定的目标是“建设”?
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<executions>
<execution>
<id>default</id>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
</plugin>发布于 2019-07-19 11:09:49
您不能使用spotify插件从docker-compose.yml文件开始构建图像。readme提到,设计目标是:
别做任何花哨的事。Dockerfiles是如何构建Docker项目的;这正是这个插件所使用的。
您引用的文档部分实际上说,在maven多模块项目结构上,可以很容易地使用其他构建工具,比如docker-compose。
尽管如此,还是有一些方法可以使用来自docker-compose.yml的maven构建。一个是和maven-exec一起
对于所涉档案:
version: "2"
services:
service-a:
build: a/
image: imga
service-b:
build: b/
image: imgb
links:
- service-apom.xml的相关部分如下所示:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version>
<executions>
<execution>
<id>docker-build</id>
<phase>package</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>docker-compose</executable>
<workingDirectory>${project.basedir}</workingDirectory>
<arguments>
<argument>build</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>另一个解决方案是使用fabric8
<build>
<plugins>
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.26.0</version>
<executions>
<execution>
<id>docker-build</id>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<images>
<image>
<external>
<type>compose</type>
<basedir>${project.basedir}</basedir>
<composeFile>docker-compose.yml</composeFile>
</external>
</image>
</images>
</configuration>
</plugin>
</plugins>
</build>用最适合你的那个。
https://stackoverflow.com/questions/57105061
复制相似问题