kubernetes-ci/cd-(三)

    jenkins 配置完成后,最终实现的是ci/cd,在编译的过程中,经常会遇到后端java的,前端nodejs的,这里就需要进行一个k8s在调度的时候生产pod来进行指定pod进行编译

1、制作容器

自定义一个容器,里面包含了 java,nodejs的所需要的环境,同时需要同步容器的时间,包含来jenkins的node

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# cat Dockerfile
FROM docker.io/centos:latest
MAINTAINER xxlaila "cq_xxlaila@163.com"
# Install dependent plugin
ENV VERSION v10.15.1
RUN yum install -y wget \
git \
java-1.8.0-openjdk.x86_64 \
&& curl -sL https://rpm.nodesource.com/setup_11.x | bash - \
&& yum install -y gcc gcc-c++ make \
&& yum install -y nodejs \
&& yum clean all
# System variable setting
RUN echo "LANG=zh_CN.UTF-8" >> /etc/locale.conf \
&& source /etc/locale.conf \
&& cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo "Asia/shanghai" >> /etc/timezone \
&& groupadd -g 10000 jenkins \
&& useradd -g jenkins -u 10000 jenkins


EXPOSE 50000
  • 执行容器打包

    1
    # docker build -t centos7.6/node11:latest .\
  • 推送容器到私有镜像仓库

    1
    2
    # docker tag centos7.6/node11:latest docker.io/xxlaila/centos-7-jdk1.8-nodejs11.10-jenkins:latest
    # docker push docker.io/xxlaila/centos-7-jdk1.8-nodejs11.10-jenkins:latest

2、jenkins的配置

2.1、系统配置

jenkins——>系统管理——>系统设置
名称:kubernetes
地址https://kubernetes.default.svc.cluster.local
jenkins地址http://jenkins2.kube-ops.svc.cluster.local:8080
img

2.2、增加一个kubenetes pod templates

img

2.3、配置容器环境

img

2.4、配置权限

img

3、测试job

建立一个test job 的pipeline来进行容器是否正常

1
2
3
4
5
6
7
8
9
10
11
node ('agent-node'){
container('nodejs') {
sh 'whoami'
sh 'hostname'
sh 'echo $PATH'
sh 'npm version'
sh 'node -v'
sh 'npx -v'
sh 'java -version'
}
}

3.1、建立pipeline

3.1.1、建立一个后端
1
2
3
4
5
6
7
8
9
10
11
12
13
14
node('agent-build') {
stage('Clone') {
echo "1.Clone Stage"
git credentialsId:'gitlabUser', url: 'http://gitlab.xxlaila.com/plat/middleware/kxl-eureka.git'
}
stage('build') {
echo "2. Start build ${JOB_NAME}"
sh '/opt/bin/mvn clean package'
}
stage('show package') {
sh 'pwd'
sh 'ls -ltrh target/'
}
}

3.1.2、建立一个前端

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
node('agent-build') {
stage('Clone') {
echo "1.Clone Stage"
git credentialsId:'gitlabUser', url: 'http://gitlab.xxlaila.com/front-end/portal/kts-platform.git'
}
stage('install') {
container('nodejs'){
echo "2. Start install ${JOB_NAME}"
sh 'node -v'
sh 'npm install'
sh 'npm run build production'
}
}
stage('show package') {
sh 'pwd'
sh 'ls -ltrh'
}
}
坚持原创技术分享,您的支持将鼓励我继续创作!
0%