Sping Boot maven插件构建映像:如何将docker主机、绑定和其他选项作为参数传递给mvn spring-boot:build-image

yjghlzjz  于 2023-03-18  发布在  Spring
关注(0)|答案(1)|浏览(200)

我有下面的spring-boot-maven插件配置:

<plugin>
    <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <docker>
        <host>tcp://<docker-host>:2375</host>
        </docker>
        <image>
        <buildpacks>
            <buildpack>gcr.io/paketo-buildpacks/amazon-corretto:latest</buildpack>
            <buildpack>paketo-buildpacks/java</buildpack>
        </buildpacks>
        <verboseLogging>true</verboseLogging>       
        <pullPolicy>IF_NOT_PRESENT</pullPolicy>
        <env>                                                                       
           <BP_DEBUG>true</BP_DEBUG>
        </env>          
        <bindings>                               
             <binding>${basedir}/bindings:/platform/bindings</binding>
         </bindings>
        </image>
    </configuration>
    <executions>
       <execution>
          <id>repackage</id>
        <goals>
           <goal>repackage</goal>
        </goals>
        <configuration>
            <classifier>executable</classifier>
        </configuration>
       </execution>
    </executions>
</plugin>

我想将docker hostbindings作为参数传递给mvn spring-boot:build-image
我尝试了-Dspring-boot.build-image.dockerHost-Dspring-boot.build-image.docker.host-Dspring-boot.dockerHost等,但是没有任何效果。我还没有尝试绑定的东西:${basedir}/bindings:/platform/bindings
我们的要求是将docker hostbindings都设置为mvn spring-boot:build-image参数,以尽可能保持pom.xml的通用性。
不确定我错过了什么?
P.S.将DOCKER_HOST设置为env变量是有效的。
另外,我可以使用${docker.host}作为主机,使用${binding}作为绑定,然后运行以下命令:

mvn spring-boot:build-image -Ddocker.host=mydockerhost:2375   
  -Dbinding="my/absolute-path/to/bindings:platform/bindings"

我想这不是个合适的解决办法。

w9apscun

w9apscun1#

不幸的是,我不认为你可以做得比你已经设想的更好(创建你自己的maven pom变量来注入值到插件设置中)
最近提出了一个similar issue,分辨率只是documentation的问题。
回到您的问题,您可以通过代码或文档看到,无法通过Spring属性配置dockerHostbindings(尽管正如您提到的,env变量DOCKER_HOST是一个选项)。
希望能有所帮助!

相关问题