https://jenkins.io/zh/doc/book/pipeline/ 官方教程,可以中文。Jenkinsfile就是把pipeline内容保存到文件,然后提交到svn等版本控制库中。安装blue ocean流水线插件。

打开后如下图所示:

修改Jenkins有别的命名空间的权限

# rbac.yaml文件添加内容如下,后提交
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: jenkins-myself
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: admin
subjects:
- kind: ServiceAccount
name: jenkins2
namespace: kube-ops

添加svn-get项目,使用SCM方式获取pipeline流水线文件

其中Jenkinsfile-svn-get文件内容如下,流水线定义步骤为:从svn上拉取nginx源码 --> 安装编译时依赖文件 --> 编译 --> 把编译后的文件打包 --> 调用定义的dockerfile开始构建镜像 --> 推送镜像到仓库 --> 调用kubectl完成镜像部署(这里也可以定义yaml文件来实现)

node('haimaxy-jnlp'){
checkout(
[
$class: 'SubversionSCM',
additionalCredentials: [],
excludedCommitMessages: '',
excludedRegions: '',
excludedRevprop: '',
excludedUsers: '',
filterChangelog: false,
ignoreDirPropChanges: false,
includedRegions: '',
locations: [
[cancelProcessOnExternalsFail: true,
credentialsId: '',
depthOption: 'infinity',
ignoreExternalsOption: true,
local: '.', remote: 'svn://192.168.31.9/nginx']
],
quietOperation: true,
workspaceUpdater: [$class: 'UpdateUpdater']
]
)
stage('yum'){
sh 'rpm --rebuilddb && yum --nogpgcheck -y install pcre-devel zlib-devel gcc'
}
stage("build nginx"){
sh './configure --prefix=/usr/local/nginx && make && make install'
}
stage('tar'){
sh 'tar zcvf nginx.tar.gz /usr/local/nginx'
}
stage('docker build'){
sh 'docker build -t 192.168.31.9:5000/jenkins-build-nginx -f dockerfile . '
}
stage('docker push'){
sh 'docker push 192.168.31.9:5000/jenkins-build-nginx'
}
stage('kubectl run'){
sh 'kubectl run nginx --image=192.168.31.9:5000/jenkins-build-nginx --image-pull-policy=Always --namespace=default'
}
}

dockerfile文件内容如下

FROM 192.168.31.9:/openvz-centos7
ADD nginx.tar.gz /
RUN echo 'daemon off;' >> /usr/local/nginx/conf/nginx.conf
CMD /usr/local/nginx/sbin/nginx

最终效果如下:

03.pipeline实现项目自动编译docker镜像自动打包的更多相关文章

  1. k8s Gitlab CI/CD 之自动编译Docker镜像并推送到指定的Registry

    环境介绍: 说明 节点 ip 系统 Gitlab Server git.ds.com 10.0.1.179 CentOS 7.5.1804 Gitlab Runner   10.0.1.178 Cen ...

  2. Dockerfile 自动制作 Docker 镜像(三)—— 镜像的分层与 Dockerfile 的优化

    Dockerfile 自动制作 Docker 镜像(三)-- 镜像的分层与 Dockerfile 的优化 前言 a. 本文主要为 Docker的视频教程 笔记. b. 环境为 CentOS 7.0 云 ...

  3. Dockerfile自动制作Docker镜像(二)—— 其它常用命令

    Dockerfile自动制作Docker镜像(二)-- 其它常用命令 前言 a. 本文主要为 Docker的视频教程 笔记. b. 环境为 CentOS 7.0 云服务器 c. 上一篇:Dockerf ...

  4. Dockerfile 自动制作 Docker 镜像(一)—— 基本命令

    Dockerfile 自动制作 Docker 镜像(一)-- 基本命令 前言 a. 本文主要为 Docker的视频教程 笔记. b. 环境为 CentOS 7.0 云服务器 c. 上一篇:手动制作Do ...

  5. Web自动化框架之五一套完整demo的点点滴滴(excel功能案例参数化+业务功能分层设计+mysql数据存储封装+截图+日志+测试报告+对接缺陷管理系统+自动编译部署环境+自动验证false、error案例)

    标题很大,想说的很多,不知道从那开始~~直接步入正题吧 个人也是由于公司的人员的现状和项目的特殊情况,今年年中后开始折腾web自动化这块:整这个原因很简单,就是想能让自己偷点懒.也让减轻一点同事的苦力 ...

  6. docker镜像批量打包

    docker镜像批量打包 批量打包镜像: # docker save $(docker images | grep -v REPOSITORY | awk 'BEGIN{OFS=":&quo ...

  7. Kubernetes master服务定制编译docker镜像

    前言 之前部署了Kubernetes 1.13.0,发现master服务的启动方式与1.10.4版本有所区别,kube-apiserver.kube-controller-manager和kube-s ...

  8. 在docker hub,用github的dockerfile自动生成docker镜像

    简介: 我已经深深的爱上了docker技术. 在日常使用中,经常看到docker hub 中有很多autobuild的镜像.基本使用是在github中上传dockerfile,过一会儿,docker ...

  9. Watchtower - 自动更新 Docker 镜像与容器

    git 地址:https://github.com/containrrr/watchtower Docker images docker pull containrrr/watchtower:i386 ...

随机推荐

  1. 19 01 18 dango 模型

    定义属性 Django根据属性的类型确定以下信息: 当前选择的数据库支持字段的类型 渲染管理表单时使用的默认html控件 在管理站点最低限度的验证 django会为表创建自动增长的主键列,每个模型只能 ...

  2. bzoj 4247挂饰

    背包????不会... #include<bits/stdc++.h> #define INF 0x7fffffff #define LL long long #define N 1000 ...

  3. <mvc:default-servlet-handler />说明

    优雅REST风格的资源URL不希望带 .html 或 .do 等后缀.由于早期的Spring MVC不能很好地处理静态资源,所以在web.xml中配置DispatcherServlet的请求映射,往往 ...

  4. 十、CI框架之通过参数的办法输出URI路径

    一.代码如下,index函数有2个参数 二.效果如下: 不忘初心,如果您认为这篇文章有价值,认同作者的付出,可以微信二维码打赏任意金额给作者(微信号:382477247)哦,谢谢.

  5. Javascript里EQ、NE、GT、LT、GE、LE含义

    EQ 就是 EQUAL等于 NE就是 NOT EQUAL不等于 GT 就是 GREATER THAN大于  LT 就是 LESS THAN小于 GE 就是 GREATER THAN OR EQUAL ...

  6. It can be a face application using SeetaFace and Qt.

    之前编译了一下SeetaFace的库,用于人脸检测.特征点定位和人脸识别的功能,然后昨天就用Qt写了一个软件用于实现. 工程的文件还是比较简单的,一个界面类和一个SeetaFace的线程类而已.这里主 ...

  7. Springboot过滤器注解简笔

    对多个过滤的注解      @WebFilter(filterName="FirstFilter",urlPatterns={"*.do","*.js ...

  8. Servlet过滤器基础及使用场景

    Servlet过滤器详解 一.过滤器基础 1.Servlet过滤器是Servlet的一种特殊用法,主要用来完成一些通用的操作.比如编码的过滤,判断用户的登陆状态等等.Servlet过滤器的适用场合: ...

  9. 简单LCS HDU_1503

    学了一下最长公共子串,它是属于dp里面的 dp=max{(i,j-1),(i-1,j),(i-1,j-1)+d}问题,不得不说,规划方向确实厉害,当然这只适用于两个字符串匹配的问题,n个字符串的话,我 ...

  10. selenium爬取优酷页面并下载图片

    from selenium import webdriver import requests driver = webdriver.Chrome() #打开优酷 driver.get("ht ...