我正在使用Maven臂架插件对我基于Spring Boot的应用程序进行泊坞操作。
https://github.com/GoogleContainerTools/jib/tree/master/jib-maven-plugin
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>src/main/resources/static</directory>
</resource>
</resources>
<outputDirectory>${project.build.directory}/webapp/static</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>0.9.13</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<from>
<image>${base.image}</image>
</from>
<to>
<image>${registry}/${repository}/${image}:${version}</image>
</to>
<extraDirectory>${project.build.directory}/webapp</extraDirectory>
</configuration>
</plugin>
JIB插件中没有args或Entrypoint。我想通过参数来控制它。
运行“ mvn clean install”时,我在日志中看到以下行。
Container entrypoint set to [java, -cp, /app/resources:/app/classes:/app/libs/*, com.test.Application]
我尝试将--spring.config.location作为程序参数传递,如下所示。但这不是选择我的application.properties。我尝试修改起始类名称以检查其是否正常运行,但仍使用com.test.Application。看起来,这里没有考虑-c。
docker run -v / local / path / config /:/ secrets / 图像:1.0 bash“ java -cp / app / libs / *:/ app / resources /:/ app / classes / -Xmx2g -Xms2g com.test.Application --spring.config.location = / secrets / application.yml“
答案 0 :(得分:0)
由于您正在使用Jib构建容器映像,因此默认入口点为
ENTRYPOINT ["java", jib.container.jvmFlags, "-cp", "/app/resources:/app/classes:/app/libs/*", jib.container.mainClass]
也可以使用仅包含运行时依赖项的非发行版映像。因此,您无法在容器中运行bash
。
这应该可以完成工作。
docker run -e "spring.config.location=/secrets/application.yml" -v /local/path/config/:/secrets/ IMAGE:1.0
答案 1 :(得分:0)
理解问题,当使用jib作为maven插件
然后在容器内传递 entryPoint,但似乎 jib 插件没有选择它。
因此需要对位置的参数访问进行以下更改:
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>2.2.0</version>
<configuration>
<to>
<image>image-url</image>
</to>
<container>
<creationTime>${maven.build.timestamp}</creationTime>
<mainClass>com.package.SpringBootMainClass</mainClass>
<args>
<arg>--spring.config.location=/demo/location/application.yml</arg>
</args>
</container>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
</plugin>