微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Skaffold/IntelliJ 如何配置 maven 镜像

如何解决Skaffold/IntelliJ 如何配置 maven 镜像

我正在尝试使用 Skaffold 和 IntelliJ 直接在 Kubernetes 中进行开发,但是我在使用 maven 时遇到了问题,当 IntelliJ 尝试初始化环境时出现以下错误

 Running "bash -c curl --fail --show-error --silent --location --retry 3 
 https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.10%2B9/OpenJDK11U- 
 jdk_x64_linux_hotspot_11.0.10_9.tar.gz | tar xz --directory /layers/google.java.runtime/java -- 
 strip-components=1"
 [builder] Done "bash -c curl --fail --show-error --silent --location --retry..." (59.3720683s)
 [builder] === Java - Maven (google.java.maven@0.9.0) ===
 [builder] Installing Maven v3.6.3 

 [builder] Running "/layers/google.java.maven/maven/bin/mvn clean package --batch-mode -DskipTests -- 
 quiet"
 [builder] [ERROR] [ERROR] Some problems were encountered while processing the POMs:

问题是,我的一些 Spring Boot 应用程序依赖项是在我们的 Nexus 存储库中定义的,并且在我的 maven settings.xml 中定义了镜像,这个过程不知道镜像配置,我找不到配置的方法用于脚手架。

我尝试在 skaffold.yml 中设置 settings.xml 如下

apiVersion: skaffold/v2beta11
kind: Config
build:
  artifacts:
  - image: myproject/myapp
  jib:
    args:
    -  --settings=C:\maven\conf\settings.xml
  tagPolicy:
  sha256: {}

有人知道如何让 'google.java.maven' 使用我的镜像配置吗?

感谢回答...

解决方法

Skaffold 支持三种开箱即用的 Java 应用程序构建器工作:Jib、Buildpacks 和 Docker。 Jib builder 将最容易满足您的需求。

Jib 构建在您的主机上运行(相对于在容器化环境中)。由于 Skaffold 的 Jib 构建器只是直接调用 Maven 或 Gradle,它们使用您的帐户设置而无需额外配置(特别是您的 $HOME/.m2/settings.xml$HOME/.m2/repository 中的工件缓存)。您上面的 skaffold.yaml 只需要一个小的缩进调整,它应该一切正常:

apiVersion: skaffold/v2beta11
kind: Config
build:
  artifacts:
  - image: myproject/myapp
    jib: {}
  tagPolicy:
    sha256: {}

您可以在 Skaffold examples 中看到一个工作示例。

Docker 和 Buildpacks 构建在容器内运行:也就是说,源被复制到容器中。因此,您无法引用 构建上下文 之外的文件,例如您的 $HOME/.m2/settings.xml。您可以在源目录中创建模型 settings.xml 并引用该文件,然后使用环境变量或构建参数传递用户名和密码。但它变得相当复杂。

我们对 allow mounting directories as volumes for the Buildpacks builder 有一个未解决的问题,我们应该能够为 Docker 构建器做同样的事情。如果您真的想使用 Buildpacks 或 Docker,那么该功能可以更轻松地支持您的情况。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。