我目前正在将 Spring Boot App 的容器化从Dockerfile
文件迁移到 Spring Boot Maven Plugin build-image
。
现在我想知道如何在这种情况下配置卷。相当于VOLUME ["/var/store"]
在Dockerfile
. 我已经用谷歌搜索了一段时间,感谢您的帮助。谢谢!
我目前正在将 Spring Boot App 的容器化从Dockerfile
文件迁移到 Spring Boot Maven Plugin build-image
。
现在我想知道如何在这种情况下配置卷。相当于VOLUME ["/var/store"]
在Dockerfile
. 我已经用谷歌搜索了一段时间,感谢您的帮助。谢谢!
这取决于目的。
<binding>
在pom.xml
.构建映像时应挂载到构建器容器的卷绑定挂载。在创建构建器容器时,绑定将未经解析和未经验证地传递给 Docker。
绑定必须采用以下形式之一:
<host source path>:<container destination path>[:<options>]
<host volume name>:<container destination path>[:<options>]
例如:导致构建包执行时/host/workspace
被挂载/workspace
<project>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<image>
<bindings>
<binding>/host/workspace:/workspace</binding>
</bindings>
</image>
</configuration>
</plugin>
</plugins>
</build>
</project>
这与使用pack build --volume
标志相同,如果使用的是 pack cli 而不是 Spring Boot 的 Maven 插件。
您可以在运行应用程序时绑定卷。这只是使用容器运行时的标准工具和参数。例如,您可以docker run -v
在一个卷中映射。
如果您想要VOLUME
Dockerfile 中条目的特定行为(实际上并没有执行上面的 1 或 2),那么对于使用 Spring Boot 正在使用的 Buildpacks 创建的图像,它不会公开。如果这是你想要的,我鼓励你阅读这篇关于卷的 SO 帖子,并重新考虑你是否真的需要它。