我正在尝试使用 kubernetes plugin 使用 slave
设置 jenkins kubernetes
。我的目标是让插件在每次需要运行作业时启动一个 gke container
我已经完成了波纹管设置
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
好像container
已经可以写了
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 似乎已断开连接。