0

我正在尝试使用 Kubernetes 使用kubernetes 插件设置 Jenkins 从站。我的目标是让插件在每次需要运行作业时启动 GKE 容器。

我已经完成了以下设置:

1 - 创建新集群

2 - 为集群创建具有管理员角色的服务帐户

3 - 配置jenkins kubernetes插件(能够连接到 GKE 集群)

4 - 配置pod template(使用我已经推送到 DockerHub 的自定义 Docker 映像)

当我构建一个项目时,我可以看到工作运行到一半,直到到达以下点:

Agent went offline during the build
ERROR: Connection was broken: java.nio.channels.ClosedChannelException

这是什么错误,我该如何解决?是否需要任何其他设置?

更新:搜索后,我更新了我的Dockerfile. 好像容器已经可以写了:

FROM jenkins/inbound-agent
USER root

# Install Build Essentials
RUN apt-get update \
    && apt-get upgrade -y \
    && apt-get dist-upgrade -y \
    && apt-get install build-essential -y
# Set Environment Variables
ENV SDK_URL="https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip" \
    ANDROID_HOME="/home/jenkins/android-sdk" \
    ANDROID_VERSION=30 \
    BUILDTOOL_VERSION="30.0.2" \
    NDK_VERSION="22.0.7026061"

USER jenkins

# Download Android SDK
RUN mkdir "$ANDROID_HOME" .android \
    && cd "$ANDROID_HOME" \
    && curl -o sdk.zip $SDK_URL \
    && unzip sdk.zip \
    && rm sdk.zip \
    && mkdir "$ANDROID_HOME/licenses" || true \
    && echo "24333f8a63b6825ea9c5514f83c2829b004d1fee" > "$ANDROID_HOME/licenses/android-sdk-license" \
    && yes | $ANDROID_HOME/tools/bin/sdkmanager --licenses

# Install Android Build Tool and Libraries
RUN $ANDROID_HOME/tools/bin/sdkmanager --update
RUN $ANDROID_HOME/tools/bin/sdkmanager "build-tools;${BUILDTOOL_VERSION}" \
    "platforms;android-${ANDROID_VERSION}" \
    "platform-tools" \
    "ndk;${NDK_VERSION}"

我可以看到Workload创建和构建正在运行,但不明白为什么它总是停在中间并出现上述错误。看来我的 pod 在构建完成之前已断开连接。

4

0 回答 0