`

Docker Jenkins gitlab CI环境

阅读更多
本文介绍利用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
分享到:
评论

相关推荐

    基于Docker构建Jenkins+CI平台.md

    md文件详细描述了从0到1构建CI/CD平台的步骤,从docker到Jenkins,在到gitlab,在到harbor等平台,并提供了pipeline的基本实例

    Jenkins和gitlab.zip

    1. **Pipeline as Code**: 在GitLab的`.gitlab-ci.yml`中定义的流水线可以与Jenkins的Pipeline语法相集成,实现CI/CD流程的完全代码化。 2. **GitLab Merge Request触发Jenkins**: 当开发者发起合并请求时,Jenkins...

    centos7平台集成Jenkins+gitlab

    基于 CentOS 7.0 平台搭建 GitLab+Jenkins 可持续集成环境 本文主要介绍了基于 CentOS 7.0 平台搭建 GitLab+Jenkins 可持续集成环境的过程,包括 JDK 安装、Jenkins 安装、GitLab 安装和配置、访问 GitLab 等步骤。...

    docker-gitlab-cicd-master.zip

    1、springboot项目通过docker命令实现打包生成镜像 2、通过docker插件实现打包镜像并上传nexus私服 3、通过定义gitlab-ci.yml实现提交代码自动打包镜像部署

    详解Docker+Jenkins+Gitlab+Django应用部署实践

    在互联网应用快速更新迭代的大背景下,传统的人工手动或简单脚本已经不能适应此变化,此时Devops为我们提供了良好的解决方案,应用好CI/CD可以大大的方便我们的日常工作,自动化快速的持续集成/持续交付为我们带来了...

    Docker+Jenkins+Harbor+GitLab.pdf

    企业级CI/CD,项目自动化实战,从0到有,但不涉及相关原理。适合上手,建议实际操作之后再详细学习相关原理。

    docker-swarm-mode:设置基于Docker的CI环境。 工具包括GitLap,Jenkins,Sonarqube和Nexus

    docker-swarm-mode:设置基于Docker的CI环境。 工具包括GitLap,Jenkins,Sonarqube和Nexus

    Docker Gitlab+Jenkins+Harbor构建持久化平台操作

    CI/CD概述 CI工作流程设计 Git 代码版本管理系统 只能命令行去管理git Gitlab 基于git做了图形管理页面,企业使用gitlab做私有的代码管理仓库 Github 公共代码管理仓库 搭建gitlab 搭建gitlab先创建工作目录,因为...

    Docker自动化CI

    这个例子展示了如何使用Docker容器来自动化CI过程,包括部署Gitlab服务器、创建版本库、部署Jenkins服务器和部署Java项目。该过程可以提高软件开发效率和质量,并提供一个稳定、可靠的环境来执行自动化测试和构建。 ...

    devops-ci-env:使用 DockerGerritGitLabJenkins 创建持续集成环境的脚本

    devops-ci-env 创建持续集成环境的脚本使用 Docker/Gerrit/GitLab/Jenkins/

    jiraci:一个在gitlab,jenkins和jira之间集成的docker-compose

    这是一个包含Jenkins,JIRA和gitlab的docker-compose的项目。 项目目标 目标是创建一个CI / CD工具,该工具以以下方式集成JIRA和gitlab: 对于每个新问题,被分配的人都会创建一个以问题名称开头的分支。 例如:JIR...

    大天使之剑java源码-dev_ci_docker:在Docker上运行的Jenkins/GitlabCI环境

    java源码dev_ci_docker 使用 Jenkins 和 Gitlab 在 Docker 容器中运行的小型 CI 环境。 灵感来自 容器 tyrael : 数据容器 imperius : jenkins 容器 iterael : gitlab 容器 auriel :nginx 容器(代理) 用法 ...

    k8s+docker+Jenkins+git持续集成与持续发布

    持续集成(CI)和持续发布(CD)是软件开发中的一种实践,旨在提高软件的质量和交付速度。 在这个案例中,我们将使用 k8s、Docker、Jenkins 和 Git 来实现持续集成与持续发布。该案例将涵盖以下知识点: 1. k8s ...

    gitlab和jenkins自动上传部署

    结合 GitLab 和 Jenkins,你可以实现一个完整的自动化流程:开发者提交代码到 GitLab,GitLab CI/CD 触发 Jenkins 构建,Jenkins 进行编译、测试并自动部署到目标环境。这种自动化部署策略显著提升了软件开发效率,...

    terraform-aws-jenkins:Terraform模块,用于使用Jenkins构建Docker映像,将其保存到ECR存储库中,并部署到运行Docker堆栈的Elastic Beanstalk

    这是一种企业就绪,可伸缩且高度可用的体系结构,以及用于构建和部署Jenkins的CI / CD模式。 产品特点 该模块将创建以下AWS资源: Elastic Beanstalk应用程序 带有Docker堆栈的Elastic Beanstalk环境可运行Jenkins...

    Jenkins+Gitlab持续集成综合实战1

    随着软件开发团队规模的扩大和敏捷开发理念的普及,持续集成(Continuous Integration,CI)成为了提高开发效率和保证软件质量的重要手段。CI强调开发人员频繁地将代码集成到共享仓库,每次集成都通过自动化构建和...

    docker-jenkins-slave-nodejs

    支持的标签和相应的Dockerfile链接 介绍 Dockerfile构建一个 -slave容器映像。 将它与一起使用,或... 这个示例.gitlab-ci.yml -file描述了一个基于.gitlab-ci.yml的简单构建: build: image: pcvolkmer/jenkins-s

    Jenkins+GitHub实现C项目的集成开发

    在现代软件开发流程中,持续集成和持续部署(CI/CD)扮演着至关重要的角色。"Jenkins+GitHub实现C项目的集成开发"是一个典型的应用场景,它结合了两个强大的工具:Jenkins,一个开源的持续集成服务器,以及GitHub,...

Global site tag (gtag.js) - Google Analytics