ci

基本思想

image.png

image.png

docker-compose代码

version: '3.2'
services:
  gitlab:
    image: 'gitlab:latest'
    restart: always
    hostname: 'gitlab.hahalet.com'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://10.0.122.158:9280'
        unicorn['worker_timeout'] = 60
        unicorn['worker_processes'] = 3 # worker进程数
        unicorn['worker_memory_limit_min'] = "200 * 1 << 20" # worker最小内存
        unicorn['worker_memory_limit_max'] = "300 * 1 << 20"  # worker最大内存
        sidekiq['concurrency'] = 10
        postgresql['shared_buffers'] = "128MB"
        postgresql['max_worker_processes'] = 8
    networks:
      - jumpserver-test
    ports:
      - '9280:9280'
    volumes:
      - './gitlab/config:/etc/gitlab'
      - './gitlab/logs:/var/log/gitlab'
      - './gitlab/data:/var/opt/gitlab'

  jenkins:
    image: 'jenkins:latest'
    restart: always
    privileged: true
    user: root
    volumes:
      - type: bind
        source: ./jenkins/jenkins_home
        target: /var/jenkins_home
      - type: bind
        source: /Volumes/data/com.docker.docker/Data/docker.sock
        target: /var/run/docker.sock
        read_only: "yes"
    networks:
      - jumpserver-test
    ports:
      - "9980:8080"

volumes:
  mysqldb:
networks:
  jumpserver-test:

注意事项
1.gitlab 首先上传公钥(jenkins)
2.如果需要gitclone则需要使用gitlab容器的ip
3.在jenkins中如果需要配置gitlab的ip则需要配要配置容器的ip及其内部端口

一、环境准备

jenkins容器
gitlab容器
保证两个容器在同一个网段

二、jenkins配置

初始化之类的就不多说了,看我的博客,有详细讲解:
https://blog.csdn.net/hanguofei/article/details/102670620

1、安装插件
2、把jenkins的公钥添加到本地gitlab的SSH-KEYS里
3、在Gitlab上创建一个root用户

三、gitlab配置

1、在Gitlab上创建一个用于添加jenkins凭据的用户,就是gitlab当前登陆的用户

四、持续集成

1、创建一个自由风格的构建任务
点击新建任务

image

输入任务名称,选中自由风格项目,点击确定

image

写描述信息

image

配置仓库地址

image

添加ssh私钥

image
image

这里添加的是jenkins容器的私钥

image

构造触发器,这里选择webhook,提交后自动完成集成

image

增加构建步骤,这里可以添加一些执行动作,可以不选

image

构建后步骤。归档成品:生成.war包或者.zip包
邮件通知:构造成功或失败发送邮件通知

image

2、gitlab相应操作

配置 jenkins 的 webhook触发事件

复制webhook那块的http链接,

image

点击这个扳手

image

点击Intergrarions

image

放入URL中,点击对应的事件测试是否成功

image

添加webhook,点击test可进行测试

image

轮询SCM

相互之间能够回调

image
image
image
image
image
image

扩展

系统管理 中点击 系统配置
发送邮件

image

使用ssl协议,端口为465,不使用则为无25

你可能感兴趣的:(ci)