0

我正在尝试使用 spring-native 创建我的第一个“本机 Java 应用程序”。我修改我的 pom 添加这个

<dependency>
        <groupId>org.springframework.experimental</groupId>
        <artifactId>spring-native</artifactId>
        <version>0.10.5</version>
    </dependency>

还有这个(在插件部分)

       <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <image>
                    <builder>paketobuildpacks/builder:tiny</builder>
                    <env>
                        <BP_NATIVE_IMAGE>true</BP_NATIVE_IMAGE>
                    </env>
                </image>
            </configuration>
        </plugin>

如果我运行“mvn clean package”一切正常;但是当我尝试“spring-boot:build-image”时出现此错误(您看不到的图片部分显示“x509:由未知机构签名的证书”): 在此处输入图像描述

我已经尝试将站点的证书(下图)添加到 intellij,但我得到了同样的错误。

在此处输入图像描述

有什么建议吗?

4

1 回答 1

0

下载尝试https://github.com/graalvm/graalvm-ce-builds/releases发生在运行 Cloud Native Buildpacks 构建器和 buildpacks 的 Docker 容器内。当 Docker 容器位于使用自定义 CA 证书的公司 HTTP 代理后面时,可能会发生此类证书错误。有一个Paketo buildpacks 问题和一个涵盖类似错误的Spring Boot 问题。

将证书添加到 JDK 信任库不会解决此问题。必须在启动构建器容器时向其提供证书。这在Paketo 文档Spring Boot 文档中都有介绍,但是要准确理解如何配置证书有点困难。

举个例子:

首先bindings在项目结构的根目录(与项目目录在同一级别src)创建一个目录,并将自定义证书复制到该目录(其中my-custom-certificate.crt是 PEM 格式的 CA 证书):

$ mkdir -p bindings/certificates
$ echo "ca-certificates" > bindings/certificates/type
$ cp /some/path/to/my-custom-certificate.crt bindings/certificates/my-custom-certificate.crt
$ tree bindings
bindings
├── certificates
│   ├── my-custom-certificate.crt
│   └── type

然后配置 Spring Boot Maven 插件以在构建镜像时提供对 Paketo CNB 构建器的绑定:

  <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
      <image>
        <builder>paketobuildpacks/builder:tiny</builder>
        <env>
          <BP_NATIVE_IMAGE>true</BP_NATIVE_IMAGE>
        </env>
        <bindings>
          <binding>${basedir}/bindings/certificates:/platform/bindings/ca-certificates</binding>
        </bindings>
      </image>
    </configuration>
  </plugin>

请注意,bindingsSpring Boot Maven 插件的配置需要 Spring Boot 2.5.0 或更高版本。

于 2021-11-05T16:48:31.107 回答