使用 gke(谷歌 kubernetes 引擎)配置 jenkins slave

时间:2021-01-13 17:14:22

标签: jenkins kubernetes jenkins-kubernetes

我正在尝试使用 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 似乎已断开连接。

0 个答案:

没有答案