【问题标题】:Dockerfile "VOLUME" equivalent when using Spring Boot Paketo Buildpack使用 Spring Boot Paketo Buildpack 时的 Dockerfile“VOLUME”等效项
【发布时间】:2021-09-15 07:15:42
【问题描述】:

我目前正在将 Spring Boot App 的容器化从 Dockerfile 文件迁移到 Spring Boot Maven 插件 build-image

现在我想知道如何在这种情况下配置卷。相当于在Dockerfile 中有一个VOLUME ["/var/store"] 声明。我已经用谷歌搜索了一段时间,感谢您的帮助。谢了!

【问题讨论】:

    标签: spring-boot docker volume buildpack paketo


    【解决方案1】:

    这取决于目的。

    1. 如果您想在 buildpack 运行时添加卷挂载,则可以将 <binding> 添加到您的 pom.xml

    https://docs.spring.io/spring-boot/docs/2.5.2/maven-plugin/reference/htmlsingle/#build-image.customization

    在构建镜像时应该挂载到构建器容器的卷绑定挂载。在创建构建器容器时,绑定将未经解析和未经验证地传递给 Docker。

    绑定必须是以下形式之一:

    • <host source path>:<container destination path>[:<options>]

    • <host volume name>:<container destination path>[:<options>]

    例如:当 buildpack 执行时,/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 插件。

    1. 您可以在运行应用程序时绑定卷。这只是使用容器运行时的标准工具和参数。例如,您可以docker run -v 并映射到一个卷中。

    2. 如果您想要 Dockerfile 中 VOLUME 条目的特定行为(实际上并没有执行上面的 1 或 2),那么对于使用 Spring Boot 使用的 Buildpacks 创建的图像,它不会公开。如果这是你想要的,我会鼓励你 read this SO post on volumes 并重新考虑你是否真的需要它。

    【讨论】:

    • THX,详细解答。实际上 3. 本来是我正在寻找的东西,我已经假设它不包括在内。这对我来说不是一个大问题,因为 2) 工作正常。只有一些用例可以派上用场,但我也完全看到了它的缺点,如果需要,您可以在周围工作。
    猜你喜欢
    • 2022-10-19
    • 2021-08-08
    • 2015-08-08
    • 1970-01-01
    • 2020-05-06
    • 2015-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多