基本思想
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、创建一个自由风格的构建任务
点击新建任务
输入任务名称,选中自由风格项目,点击确定
写描述信息
配置仓库地址
添加ssh私钥
这里添加的是jenkins容器的私钥
构造触发器,这里选择webhook,提交后自动完成集成
增加构建步骤,这里可以添加一些执行动作,可以不选
构建后步骤。归档成品:生成.war包或者.zip包
邮件通知:构造成功或失败发送邮件通知
2、gitlab相应操作
配置 jenkins 的 webhook触发事件
复制webhook那块的http链接
,
点击这个扳手
点击Intergrarions
放入URL中,点击对应的事件测试是否成功
添加webhook,点击test可进行测试
轮询SCM
相互之间能够回调
扩展
在
系统管理
中点击系统配置
发送邮件
使用
ssl协议
,端口为465
,不使用则为无25