制作jenkins-slave for java的镜像

制作基础镜像os2

FROM debian:stretch
MAINTAINER suredandan xrzp@qq.com

ENV TIMEZONE=Asia/Shanghai \
    LANG=zh_CN.UTF-8

RUN echo "${TIMEZONE}" > /etc/timezone \
    && echo "$LANG UTF-8" > /etc/locale.gen \
    && apt-get update -q \
    && ln -sf /usr/share/zoneinfo/${TIMEZONE} /etc/localtime \
    && mkdir -p /home/jenkins/.jenkins \
    && mkdir -p /home/jenkins/agent \
    && mkdir -p /usr/share/jenkins

# COPY chhostname.sh /usr/local/bin/chhostname.sh

# java/locale/DinD/svn/jnlp
RUN  DEBIAN_FRONTEND=noninteractive apt-get install -yq vim wget curl apt-utils dialog locales apt-transport-https build-essential bzip2 ca-certificates sudo jq unzip zip gnupg2 software-pr
operties-common \      && update-locale LANG=$LANG \
     && locale-gen $LANG \
     && DEBIAN_FRONTEND=noninteractive dpkg-reconfigure locales \
     && curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/debian/gpg | sudo apt-key add - \
     && add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/debian $(lsb_release -cs) stable" \
     && apt-get update -y \
     && apt-get install -y docker-ce \
     && apt-get install -y subversion \
     && groupadd -g 10000 jenkins \
     && useradd -c "Jenkins user" -d $HOME -u 10000 -g 10000 -m jenkins \
     && usermod -a -G docker jenkins \
     && sed -i '/^root/a\jenkins    ALL=(ALL:ALL) NOPASSWD:ALL' /etc/sudoers

USER root

WORKDIR /home/jenkins
docker build -t 192.168.3.27:8888/ops/os2 .
docker push 192.168.3.27:8888/ops/os2

制作基于os2的jenkins-slave

[root@master jenkins_slave_2]# ls -l
total 247672
-rw-r--r-- 1 root root   8799579 Dec  1 21:22 apache-maven-3.5.3-bin.tar.gz
-rw------- 1 root root      6347 Dec  5 11:47 config
-rw-r--r-- 1 root root       514 Dec  4 23:40 Dockerfile
drwxr-xr-x 8   10  143       255 Sep  6  2017 jdk
-rw-r--r-- 1 root root 189736377 Dec  1 16:29 jdk-8u151-linux-x64.tar.gz
-rwxr-xr-x 1 root root      2033 Dec  4 13:33 jenkins-slave
-rwxr-xr-x 1 root root  54277604 Dec  1 16:28 kubectl
drwxr-xr-x 6 root root        99 Dec  1 21:22 maven
-rw-r--r-- 1 root root    770802 Dec  1 16:24 slave.jar

Dockerfile如下:

FROM 192.168.3.27:8888/ops/os2
MAINTAINER suredandan xrzp@qq.com

RUN mkdir -p /usr/local/maven \
    && mkdir -p /usr/local/jdk \
    && mkdir -p /root/.kube

COPY jdk /usr/local/jdk
COPY maven /usr/local/maven
COPY kubectl /usr/local/bin/kubectl
COPY jenkins-slave /usr/local/bin/jenkins-slave
COPY slave.jar /usr/share/jenkins
COPY config /root/.kube/

ENV JAVA_HOME=/usr/local/jdk \
    MAVEN_HOME=/usr/local/maven \
    PATH=/usr/local/jdk/bin:/usr/local/maven/bin:$PATH
docker build -t 192.168.3.27:8888/ops/jenkins-slave4 .
docker push 192.168.3.27:8888/ops/jenkins-slave4

说明:

  • 目录jdk是jdk-8u151-linux-x64.tar.gz解压后的目录,目的是让每个slave都在镜像中就有jdk环境
  • 目录maven是apache-maven-3.5.3-bin.tar.gz解压后的目录,目的是让每个slave都有mvn环境
  • kubectl是二进制的kubectl文件
  • jenkins-slave 是 github的jenkinsci 提供的执行文件
  • slave.jar 是部署了jenkins 之后jenkins自己提供的一个jar包
    • 一般路径为:http://yourserver:port/jnlpJars/slave.jar
    • 在本文环境下的路径为: http://192.168.3.28:30001/jnlpJars/slave.jar
  • config文件是k8s集群下 /root/.kube/config
Copyright © suredandan 2018 all right reserved,powered by GitbookUpdateTime: 2020-04-09 16:42:02

results matching ""

    No results matching ""