不能正确获得上次构建以来的Commit 如何解决?…
我们可以通过公共仓库拉取镜像使用,但是,有些时候公共仓库拉取的镜像并不符合我们的需求.尽管已经从繁琐的部署工作中解放出来了,但是在实际开发时,我们可能希望镜像包含整个项目的完整环境,在其他机器上拉取打包完整的镜像,直接运行即可. ​ Docker 支持自己构建镜像,还支持将自己构建的镜像上传到公共仓库,镜像构建可以通过以下两种方式来实现: docker commit:从容器创建一个新的镜像: docker huild:配合 Dockerfile 文件创建镜像: 示例:通过 docker comm…
我们可以通过公共仓库拉取镜像使用,但是,有些时候公共仓库拉取的镜像并不符合我们的需求.尽管已经从繁琐的部署工作中解放出来,但是实际开发时,我们可能希望镜像包含整个项目的完整环境,在其他机器上拉取打包完整的镜像,直接运行即可. Docker 支持自己构建镜像,还支持将自己构建的镜像上传至公共仓库,镜像构建可以通过以下两种方式来实现: docker commit:从容器创建一个新的镜像: docker build:配合 Dockerfile 文件创建镜像. 下面我们先通过 docker commit…
构建镜像的方式两种: 一.根据已有的container构建-docker container commit 二.根据已有的image构建-docker image build(推荐) container构建 docker run -it centos 以交互的方式创建一个container 进入docker的centos yum install -y vim 安装vim exit 退出 查看container docker container ls -a /-a表示所有运行或者运行的contai…
导语:任何软件项目都是一个协作项目,它至少需要2个开发人员参与,当原始的开发人员将项目开发几个星期或者几个月之后,项目步入正规.不过他们或者后续的开发人员仍然需要经常提交一些代码去修复bug或者实现新的feature.我们经常有这种感受:当一个项目时间过了很久之后,我们对于项目里面的文件和函数功能渐渐淡忘,重新去阅读熟悉这部分代码是很浪费时间并且恼人的一件事.但是这也没法完全避免,我们可以使用一些技巧尽可能减少重新熟悉代码的时间.commit messages可以满足需要,它也反映了一个开发人员…
在JMeter接口测试不断深入的过程中,发现可以和jenkins和ant一起搭配进行自动化的构建.下面是jmeter自动化构建的整理笔记. 准备环境 需要本机上确定安装了jmeter.ant和jenkins工具,并且环境都已配置成功,这里本机安装的配置如下: jmeter的版本是3.0 ant的版本是1.8.4 jenkins的版本是2.73.2 版本截图所示 注意:jmeter3.0需要jdk的版本是1.8 ant的build.xml配置文件修改 想要实现jmeter使用ant去执行,需要做如…
Dockerfile构建实践 本文介绍了用于构建有效图像的推荐最佳实践和方法. Docker通过从一个Dockerfile文本文件中读取指令来自动构建映像,该文本文件按顺序包含构建给定映像所需的所有命令.ADockerfile遵循特定的格式和指令集,可以在Dockerfile参考中找到该指令. Docker映像由只读层组成,每个只读层代表一个Dockerfile指令.这些层是堆叠的,每个层都是与上一层相比变化的增量.考虑一下Dockerfile: FROM ubuntu:18.04 COPY .…
在IntelliJ IDEA中,显示了Maven的Lifecycle: 只需要学习这些命令,就能构建一个Maven项目. 三个内置生命周期 Maven内置了三个生命周期:clean.default和site.生命周期是由多个顺序执行的阶段组成,它们的关系和说明如下: clean 清理文件. pre-clean clean前置阶段 clean 移除上次构建生成的所有文件 post-clean clean后置阶段 default 主要生命周期,用来构建应用. validate 验证项目正确,必要信息…
分布式软件构建第二部分:构建系统如何工作 注:本文英文原文在google开发者工具组的博客上[需要FQ],以下是我的翻译,欢迎转载,但请尊重作者版权,注名原文地址. 上篇文章中提到了在Google,所有的产品都是从头开始构建的.这篇文章会更深入的介绍Google的构建系统[即Blaze]是如何工作的,并介绍让软件构建过程更快的方法.在后续的文章里,我们会解释如何利用这种确定的信息来在大规模集群之上进行分布式的软件构建并在开发者之间共享构建结果. 问题:Google是如何描述驱动构建和测试的依赖关…
BEGIN TRANSACTION 标记一个显式本地事务的起始点. BEGIN TRANSACTION 使 @@TRANCOUNT 按 1 递增. BEGIN TRANSACTION 代表一点,由连接引用的数据在该点逻辑和物理上都一致的. 如果遇上错误,在 BEGIN TRANSACTION 之后的所有数据改动都能进行回滚,以将数据返回到已知的一致状态. 每个事务继续执行直到它无误地完成并且用 COMMIT TRANSACTION 对数据库作永久的改动,或者遇上错误并且用 ROLLBACK TR…
背景:每次构建项目时都需要去修改一下配置,然后保存,再去立即构建.这样修改容易修改出错误,影响到执行脚本,且每次都要去修改配置,不容易修改,操作也比较麻烦.所以决定将Jenkins修改为参数化构建.下面是步骤.     一.点击配置,勾选参数化构建 二.点击添加参数,有下面这些参数     我用的是Choice和String Parameter两种 Choice:给出多个选项,构建时可以手动选择参数,默认是Coices内的第一行数据   String Parameter:就是一个使用字符串值的参…
组内准备搭建内部yum源,在这之前需要规范软件的安装目录,并把现有的应用打包. 目前接触两种rpm打包工具,rpmbuild和fpm. - rpmbuild rpmbuild关键是spec文件编写. 环境搭建 yum -y install rpm-build rpmdevtools useradd rpm; su rpm 注: rpm打包需要特定目录下,在近期版本下rpmbuild可以在非root账号家目录下创建打包目录: rpmdev-setuptree [rpm@vm-1-lz rpmbui…
镜像构建介绍 在什么情况下我们需要自己构建镜像那? (1)当我们找不到现有的镜像,比如自己开发的应用程序 (2)需要在镜像中加入特定的功能 docker构建镜像有两种方式:docker commit命令与Dockerfile构建文件 docker commit构建镜像 dockercommit构建进行主要有三步: 运行容器 修改容器 将容器保存为新的镜像 比如在centos镜像中安装vim编辑器并存为新的镜像 (1)运行容器 [root@ken1 docker]# docker run -it…
一.简介 在构建容器化应用时,相当重要的步骤莫过于镜像制作,本文将介绍镜像制作方法以及镜像制作的建议.通常镜像的制作有两种方式: 使用现有的容器使用docker commit 生成镜像 使用Dockerfile进行镜像构建     采用docker commit 生成的镜像实际上是容器内的文件系统进行修改在进行提交,而运行的容器实际上是在镜像的文件系统顶层添加了一层读写层,所都的修改都是基于这一层,当生成镜像时会将这一层数据保存,所以每次使用commit提交镜像时候都会比原来多一层,这样会使得镜…
一.环境搭建 本次实验的环境为Ubuntu 16.04,Jenkins 2.8.3 1.安装ssh sudo apt-get update # 更新软件源 sudo apt-get install openssh-server # 安装ssh sudo ps -e |grep ssh ## 查询是否启动 ,如果没有启动 sudo service ssh start 启动 使用gedit修改配置文件”/etc/ssh/sshd_config” 获取远程ROOT权限 打开”终端窗口”,输入”sudo…
背景| 组内做UI测试,需要每天晚上执行一遍jenkins任务,jenkins任务本身是参数化构建的.但是因为jenkins本身的定时执行没有办法指定特殊的参数,所以考虑使用命令行方式启动jenkins   第一步:下载jenkins-cli.jar,查看帮助文档 不同版本的jenkins有自己对应命令行版本jar,所以最好从jenkins机上命令行说明页下载jar   访问jenkins的命令行说明页:http://192.168.111.111:8080/jenkins/cli   该页面可…
Maven 使用了一个标准的目录结构和一个默认的构建生命周期. 约定优于配置 当创建 Maven 工程时,Maven 会创建默认的工程结构.开发者只需要合理的放置文件,而在 pom.xml 中不再需要定义任何配置. Maven - POM POM 代表工程对象模型.它是使用 Maven 工作时的基本组建,是一个 xml 文件.它被放在工程根目录下,文件命名为 pom.xml. 它被放在工程根目录下 它被放在工程根目录下 它被放在工程根目录下 能够在 POM 中设置的一些配置如下: project…
在自动化测试过程中,测试报告最能直观的体现测试的价值,之前一直使用maven+junit来构建我的自动化测试,但这样有几个缺点,一是,不能定时构建自动化任务(也许是我没有找到maven有没有提供这样的方法),二是,不能生成一个直观的测试报告(maven+junit在surefire-reports文件目录下提供两种格式的测试结果集,一种是txt文本格式,第二种是junit的xml格式的,但给我总体感觉还是不够直观),三是,无法完成分布式执行测试,设想一下,如果我们有成千上百个testcase,我…
使用MVVM设计模式构建WPF应用程序 本文是翻译大牛Josh Smith的文章,WPF Apps With The Model-View-ViewModel Design Pattern,译者水平有限,如有什么问题请看原文,或者与译者讨论(非常乐意与你讨论). 本文讨论的内容: WPF与设计模式.MVP模式.对WPF来说为什么MVVM是更好的选择.用MVVM构建WPF程序.本文涉及的技术.WPF.数据绑定. 目录: 1引言 2有序与混乱 3模型-视图-视图模型的演变 4为什么WPF开发者喜欢M…
ylbtech-Java-Maven-Runoob:Maven构建生命周期 1.返回顶部 1. Maven 构建生命周期 Maven 构建生命周期定义了一个项目构建跟发布的过程. 一个典型的 Maven 构建(build)生命周期是由以下几个阶段的序列组成的: 阶段 处理 描述 验证 validate 验证项目 验证项目是否正确且所有必须信息是可用的 编译 compile 执行编译 源代码编译在此阶段完成 测试 Test 测试 使用适当的单元测试框架(例如JUnit)运行测试. 包装 packa…
个人笔记,不保证正确. 关系构建:ForeignKey 与 relationship 关系构建的重点,在于搞清楚这两个函数的用法.ForeignKey 的用法已经在 SQL表达式语言 - 表定义中的约束 讲过了.主要是 ondelete 和 onupdate 两个参数的用法. relationship relationship 函数在 ORM 中用于构建表之间的关联关系.与 ForeignKey 不同的是,它定义的关系不属于表定义,而是动态计算的. 用它定义出来的属性,相当于 SQL 中的视图.…
什么是构建生命周期 构建生命周期是一组阶段的序列(sequence of phases),每个阶段定义了目标被执行的顺序.这里的阶段是生命周期的一部分.举例说明,一个典型的 Maven 构建生命周期是由以下几个阶段的序列组成的: 阶段 处理 描述 prepare-resources 资源拷贝 本阶段可以自定义需要拷贝的资源 compile 编译 本阶段完成源代码编译 package 打包 本阶段根据 pom.xml 中描述的打包配置创建 JAR / WAR 包 install 安装 本阶段在本地…
构建生命周期是一组阶段的序列(sequence of phases),每个阶段定义了目标被执行的顺序.这里的阶段是生命周期的一部分. 举例说明,一个典型的 Maven 构建生命周期是由以下几个阶段的序列组成的: 阶段 处理 描述 prepare-resources 资源拷贝 本阶段可以自定义需要拷贝的资源 compile 编译 本阶段完成源代码编译 package 打包 本阶段根据 pom.xml 中描述的打包配置创建 JAR / WAR 包 install 安装 本阶段在本地 / 远程仓库中安…
一.jenkins是什么? Jenkins是一个开源的.提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续.自动的构建/测试软件项目.监控外部任务的运行(这个比较抽象,暂且写上,不做解释).Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行. 通常与版本管理工具(SCM).构建工具结合使用.常用的版本控制工具有SVN.GIT,构建工具有Maven.Ant.Gradle. 二.实际使用? 1. 部署测试环境…
镜像构建介绍 在什么情况下我们需要自己构建镜像那? (1)当我们找不到现有的镜像,比如自己开发的应用程序 (2)需要在镜像中加入特定的功能 docker构建镜像有两种方式:docker commit命令与Dockerfile构建文件 docker commit构建镜像 dockercommit构建进行主要有三步: 运行容器 修改容器 将容器保存为新的镜像 比如在centos镜像中安装vim编辑器并存为新的镜像 (1)运行容器 [root@ken1 docker]# docker run -it…
树莓派3B搭建NODE-RED运行环境并构建数据流 树莓派搭建Node-RED环境 树莓派自2015年开始是默认就带NODE-RED的,但是如今已是2018年:)自带的版本已经很老了,可通过下面的命令进行自动升级NODE.JS和NODE-RED bash <(curl -sL https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/update-nodejs-and-nodered) # 如…
目录 一.简介 二.推送到gitlab 三.邮件通知 自带配置 Email Extension 四.钉钉通知 五.脚本钉钉通知 六.HTTP请求通知 一.简介 类似于监控报警,jenkins在配置持续集成后,job的执行将自动化,这就需要每次将构建结果通知到不同载体中进行查看. 像我所在的项目中,可能时不时就发布一个test环境版本,这时候对于测试人员是不友好的,页面正在进行点击测试,突然就没反应了,正在发版中. 就需要微信/钉钉等方式进行通知,不仅告诉开发也告诉测试和运维,当前有版本正在发布.…
阿里专属的镜像加速 在宿主机器编辑文件:vi /etc/docker/daemon.json 阿里专属的镜像加速地址,类似于"https://91cntlkt.mirror.aliyuncs.com". 请在该配置文件中加入(没有该文件的话,请先建一个): { "registry-mirrors": ["https://91cntlkt.mirror.aliyuncs.com"] } 最后,需要重启docker服务 之后再使用pull命令拉取镜像…
一.继续集成相关概念 1.1.什么是持续集成? 随着软件开发复杂度的不断提高,团队开发成员间如何更好的协同工作以确保软件开发的质量已经成为开发过程中不可回避的问题.尤其是近年来敏捷开发在软件领域越来越火,如何能在不间断变化的需求中快速适应和保证软件的质量显得尤其重要.持续集成正是针对这一问题的一种软件开发实践.它倡导团队开发成员必须经常集成他们的工作,甚至每天都可能发生多次集成.而每次集成都是通过自动化的构建来验证,包括自动编译.发布和测试,从而尽快地发现集成错误,让团队能更快的开发内聚的软件.…
在上篇中,我们已经能基本使用git了,接下来继续更深入的挖掘一下git. 更多的配置自定义信息 除了前面讲的用户名和邮箱的配置,还可以自定义其他配置: # 自定义你喜欢的编辑器,可选 git config --global core.editor vim # 自定义差异工具,可选 git config --global merge.tool vimdiff git config --global mergetool.prompt false # 为git着色 git config --globa…