自己搭建一个gitlab

自己搭建一个gitlab

这里主要用到了jenkins docker-compose 和 gitlab提供的docker镜像来搭建的
  • 我的社交平台 有问题可以在这里留言呀
  • github
  • 博客

安装

本地安装

brew install jenkins-lts
#
brew services start jenkins-lts
brew services restart jenkins-lts
brew upgrade jenkins-lts
记住自己的密匙
#
http://localhost:8080/

服务器安装

docker run -itd -u root -p 8080:8080 -v jenkins-data:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -v "$HOME":/home --name jenkins jenkins/jenkins
// jenkinsci/blueocean
#
docker logs jenkins
记住自己的密匙
#
http://公网地址:8080/

配置

基本配置

  • 启动并打开自己本地或者服务器jenkins的网页
# 添加CDN
Manage jenkins => Manage Plugins => Advanced => URL
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/current/update-center.json
# 需要安装的必备插件
Authorize Project
GitHub Integration
GitLab
Publish Over SSH
SSH Agent
SSH 
SSH Pipeline Steps
#
安装docker-compose
# vim docker-compose.yml 
http://xxx:8088/
docker-compose up -d

docker-compose.yml

http://公网地址:8088/users/sign_in
# 1
// 复制 https://github.com/sameersbn/docker-gitlab/blob/master/docker-compose.yml
// 更改以下几行替换成自己的相关信息
gitlab
- GITLAB_HOST=公网地址
- GITLAB_ROOT_PASSWORD=管理员密码
- GITLAB_ROOT_EMAIL=管理员邮箱
 ports: //映射端口
      - '8088:80'
      - '2443:443'
      - '2222:22'
# 2.
// 或者直接复制下方
version: '3'
services:
  web:
    image: 'twang2218/gitlab-ce-zh'
    restart: always
    hostname: '公网地址'
    environment:
      TZ: 'Asia/Shanghai'
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://公网地址'
        gitlab_rails['gitlab_shell_ssh_port'] = 2222
        unicorn['port'] = 8888
        nginx['listen_port'] = 80
    ports:
      - '8088:80'
      - '2443:443'
      - '2222:22'
    volumes:
      - ./config:/etc/gitlab
      - ./data:/var/opt/gitlab
      - ./logs:/var/log/gitlab

开启CICD

创建项目
设置
集成

选择 Campfire push evnets // 当push时候触发
取消ssh verification // 没有证书

使用jekins

高级配置

新建任务
jenkins-demo
自由风格
源码管理
构建触发器
//填写到 gitlab 集成 url
build when a change is pushed to gitLab
选中push event
opened merge Request events
approved merge request(ee-only)
comments
comment for triggering a build

Jenkinsfile

pipeline {
    agent {
      docker {
        image 'node:10'
        args '-p 20000:8080'
      }
    }

    stages {
        stage('Build') {
            steps {
                echo 'Building..'
                sh 'node -v'
                sh 'echo "hello"'
            }
        }
        stage('Test') {
            steps {
                echo 'Testing..'
            }
        }
        stage('Deploy') {
            steps {
                echo 'Deploying....'
            }
        }
    }
}

端口问题

// jenkins 和 gitlab在一个服务器上
管理中心
设置
网络
外发请求
选中 allow requests ...

版权声明:本文为weixin_44457030原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。