本文介绍利用docker、docker gitlab/gitlab-ce、docker Jenkins 来实现CI环境
1.安装docker 参照
docker install
2.安装gitlab参照
docker gitlab install
3.安装Jenkins参照
docker jenkins install
4.在Jenkins中配置自己的项目
- 在Jenkins中创建新的item
- 在Jenkins配置项目源码路径
所选Credentials必须有访问gitlab上对应工程的权限。
- 在Jenkins配置自动执行策略(触发器),我们想配置成每次gitlab上项目有提交、mearge请求后都自动把最新的代码重新打包,所以此处只需把Poll SCM打开就可以了
- 在Jenkins配置打包执行命令,注意maven工程默认是mvn命令执行,所以我们在build中只需输入我们要执行的mvn goals 就可以了,不用加mvn
- 在gitlab项目中配置webhook
- webhook创建成功后点击,test然后到Jenkins上刚创建的item中,会发现Jenkins已经在自动帮我们打包了,之后当gitlab上代码有变更时都会自动重新打包
5.jenkins 实现参数化构建
当我们在git上有很多分支的时候,在构建的时候可以自主选择构建的版本
5.1 安装插件 extensible-choice-parameter.jpi
5.2 对jenkins工程追加参数化构建
红色框中是对应构建工程的git地址
5.3 效果图
追加完后 原来的立即构建就变成了 build with parameters
下拉列表中是自己工程对应的版本号,选择后再构建,另外在 源码管理 选择分支构建处写上此处设定的变量名称
6.触发下游工程,并且传入当前工程中选定的分支版本
6.1 安装插件 pam-auth.jpi,run-condtion.jpi,conditional-buildstep.jpi,parameterized-trigger.jpi
6.2 追加post steps
这样当前工程构建完成后会把选定的分支版本号传递到子工程中
7.直接在jenkins中打镜像,采用将宿主机docker.sock挂载到jenkins镜像内部的方式,而不是docker in docker 的方式
docker run -i -t -d -u root --name jenkins -p 8080:8080 -p 5000:5000 -v /jenkins/data/.m2:/root/.m2 -v /usr/bin/docker:/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock -v /jenkins/data:/var/jenkins_home -v /soft/jdk1.8:/var/local/jdk1.8 -v /home/data/soft/apache-maven-3.3.9:/var/local/apache-maven-3.3.9 -v /etc/localtime:/etc/localtime -v ./timezone:/etc/timezone jenkins
- 大小: 52.4 KB
- 大小: 19.5 KB
- 大小: 6.5 KB
- 大小: 9.1 KB
- 大小: 42.9 KB
- 大小: 10.7 KB
- 大小: 102.8 KB
- 大小: 74.2 KB
- 大小: 21 KB
- 大小: 40.3 KB
- 大小: 49.6 KB
分享到:
相关推荐
md文件详细描述了从0到1构建CI/CD平台的步骤,从docker到Jenkins,在到gitlab,在到harbor等平台,并提供了pipeline的基本实例
1. **Pipeline as Code**: 在GitLab的`.gitlab-ci.yml`中定义的流水线可以与Jenkins的Pipeline语法相集成,实现CI/CD流程的完全代码化。 2. **GitLab Merge Request触发Jenkins**: 当开发者发起合并请求时,Jenkins...
基于 CentOS 7.0 平台搭建 GitLab+Jenkins 可持续集成环境 本文主要介绍了基于 CentOS 7.0 平台搭建 GitLab+Jenkins 可持续集成环境的过程,包括 JDK 安装、Jenkins 安装、GitLab 安装和配置、访问 GitLab 等步骤。...
1、springboot项目通过docker命令实现打包生成镜像 2、通过docker插件实现打包镜像并上传nexus私服 3、通过定义gitlab-ci.yml实现提交代码自动打包镜像部署
在互联网应用快速更新迭代的大背景下,传统的人工手动或简单脚本已经不能适应此变化,此时Devops为我们提供了良好的解决方案,应用好CI/CD可以大大的方便我们的日常工作,自动化快速的持续集成/持续交付为我们带来了...
企业级CI/CD,项目自动化实战,从0到有,但不涉及相关原理。适合上手,建议实际操作之后再详细学习相关原理。
docker-swarm-mode:设置基于Docker的CI环境。 工具包括GitLap,Jenkins,Sonarqube和Nexus
CI/CD概述 CI工作流程设计 Git 代码版本管理系统 只能命令行去管理git Gitlab 基于git做了图形管理页面,企业使用gitlab做私有的代码管理仓库 Github 公共代码管理仓库 搭建gitlab 搭建gitlab先创建工作目录,因为...
这个例子展示了如何使用Docker容器来自动化CI过程,包括部署Gitlab服务器、创建版本库、部署Jenkins服务器和部署Java项目。该过程可以提高软件开发效率和质量,并提供一个稳定、可靠的环境来执行自动化测试和构建。 ...
devops-ci-env 创建持续集成环境的脚本使用 Docker/Gerrit/GitLab/Jenkins/
这是一个包含Jenkins,JIRA和gitlab的docker-compose的项目。 项目目标 目标是创建一个CI / CD工具,该工具以以下方式集成JIRA和gitlab: 对于每个新问题,被分配的人都会创建一个以问题名称开头的分支。 例如:JIR...
java源码dev_ci_docker 使用 Jenkins 和 Gitlab 在 Docker 容器中运行的小型 CI 环境。 灵感来自 容器 tyrael : 数据容器 imperius : jenkins 容器 iterael : gitlab 容器 auriel :nginx 容器(代理) 用法 ...
持续集成(CI)和持续发布(CD)是软件开发中的一种实践,旨在提高软件的质量和交付速度。 在这个案例中,我们将使用 k8s、Docker、Jenkins 和 Git 来实现持续集成与持续发布。该案例将涵盖以下知识点: 1. k8s ...
结合 GitLab 和 Jenkins,你可以实现一个完整的自动化流程:开发者提交代码到 GitLab,GitLab CI/CD 触发 Jenkins 构建,Jenkins 进行编译、测试并自动部署到目标环境。这种自动化部署策略显著提升了软件开发效率,...
随着软件开发团队规模的扩大和敏捷开发理念的普及,持续集成(Continuous Integration,CI)成为了提高开发效率和保证软件质量的重要手段。CI强调开发人员频繁地将代码集成到共享仓库,每次集成都通过自动化构建和...
这是一种企业就绪,可伸缩且高度可用的体系结构,以及用于构建和部署Jenkins的CI / CD模式。 产品特点 该模块将创建以下AWS资源: Elastic Beanstalk应用程序 带有Docker堆栈的Elastic Beanstalk环境可运行Jenkins...
支持的标签和相应的Dockerfile链接 介绍 Dockerfile构建一个 -slave容器映像。 将它与一起使用,或... 这个示例.gitlab-ci.yml -file描述了一个基于.gitlab-ci.yml的简单构建: build: image: pcvolkmer/jenkins-s
在现代软件开发流程中,持续集成和持续部署(CI/CD)扮演着至关重要的角色。"Jenkins+GitHub实现C项目的集成开发"是一个典型的应用场景,它结合了两个强大的工具:Jenkins,一个开源的持续集成服务器,以及GitHub,...