gpt4 book ai didi

spring-boot - 如何将 spring boot maven 插件 build-image 与 skaffold 和 dekorate 一起使用?

转载 作者:行者123 更新时间:2023-12-04 15:13:07 25 4
gpt4 key购买 nike

我正在尝试使用 Skaffold、Dekorate 和 Spring Boot。

我找不到任何使用 Spring Boot 2.3+ 的新构建包功能的示例

apiVersion: skaffold/v2beta9
kind: Config
metadata:
name: tellus-upgrade
build:
artifacts:
- image: tellus-admin
custom:
buildCommand: ./mvnw -pl tellus-admin org.springframework.boot:spring-boot-maven-plugin:2.4.0:build-image -Dspring-boot.build-image.imageName=$IMAGE -Drevision=dev-SNAPSHOT -DskipTests=true
dependencies:
paths:
- tellus-admin/src
- tellus-admin/pom.xml
- image: tellus-config-server
custom:
buildCommand: ./mvnw -pl tellus-config-server org.springframework.boot:spring-boot-maven-plugin:2.4.0:build-image -Dspring-boot.build-image.imageName=$IMAGE -Drevision=dev-SNAPSHOT -DskipTests=true
dependencies:
paths:
- tellus-config-server/src
- tellus-config-server/pom.xml
deploy:
kubectl:
manifests:
- kubernetes/defaults.yml
- kubernetes/db/kubernetes.yml
- kubernetes/dev/dnsutils.yml
- kubernetes/kafka-connect/kubernetes.yml
- tellus-admin/target/classes/META-INF/dekorate/kubernetes.yml
- tellus-config-server/target/classes/META-INF/dekorate/kubernetes.yml

当我运行 skaffold dev 时出现错误:由于第一次构建失败而退出开发模式:自定义脚本没有生成带有标签 [tellus-config-server:RELEASE_2020_2_0-226-g9be76a373-dirty] 的图像

但是从日志看来图像是构建的...

[INFO] Successfully built image 'docker.io/library/tellus-config-server:RELEASE_2020_2_0-226-g9be76a373-dirty'
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 17.004 s
[INFO] Finished at: 2020-11-15T22:31:59+11:00
[INFO] ------------------------------------------------------------------------
Building [tellus-admin]...
exiting dev mode because first build failed: the custom script didn't produce an image with tag [tellus-config-server:RELEASE_2020_2_0-226-g9be76a373-dirty]

最佳答案

spring-boot-maven-plugin:build-image 将图像加载到本地 Docker 守护进程中,但不会推送图像。我从未尝试过,但您可以使用 com.spotify:dockerfile-maven-plugin:push 目标。

更新:这是一个应该做正确事情的 Skaffold 自定义构建脚本:

#!/bin/sh
set -e
cd "$BUILD_CONTEXT"
mvn -pl "$1" -Drevision=dev-SNAPSHOT -DskipTests=true \
org.springframework.boot:spring-boot-maven-plugin:build-image \
-Dspring-boot.build-image.imageName="$IMAGE"
if [ "$PUSH_IMAGE" = true ]; then
docker push "$IMAGE"
fi

您可以将其保存到文件 mvn-build-image.sh 中,然后像这样修改您的 skaffold.yaml:

artifacts:
- image: tellus-admin
custom:
buildCommand: ./mvn-build-image.sh tellus-admin

您可能想查看 Skaffold's Jib integration来简化这个过程。

关于spring-boot - 如何将 spring boot maven 插件 build-image 与 skaffold 和 dekorate 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64843991/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com