1、安装docker

brew install --cask --appdir=/Applications docker

2、启动docker
我安装了docker-deskTop 启动软件,就启动了docker

3、安装gitlab

3.1 搜索可安装的gitlab list
docker search gitlab

3.2 下载镜像,我下载的中文
docker pull twang2218/gitlab-ce-zh

3.3 启动gitlab服务

3.3.1 可以通过docker-deskTop 生成一个镜像实例
3.3.2 也可以通过一下命令行生成镜像实例

docker run -d -p 8443:443 -p 8090:80 -p 8022:22 --restart always --name gitlab -v /usr/local/gitlab/etc:/etc/gitlab -v /usr/local/gitlab/log:/var/log/gitlab -v /usr/local/gitlab/data:/var/opt/gitlab --privileged=true twang2218/gitlab-ce-zh

解释一下:

docker run 
-d                #后台运行,全称:detach
-p 8443:443      #将容器内部端口向外映射
-p 8090:80       #将容器内80端口映射至宿主机8090端口,这是访问gitlab的端口
-p 8022:22       #将容器内22端口映射至宿主机8022端口,这是访问ssh的端口
--restart always #容器自启动
--name gitlab    #设置容器名称为gitlab
-v /usr/local/gitlab/etc:/etc/gitlab    #将容器/etc/gitlab目录挂载到宿主机/usr/local/gitlab/etc目录下,若宿主机内此目录不存在将会自动创建
-v /usr/local/gitlab/log:/var/log/gitlab    #与上面一样
-v /usr/local/gitlab/data:/var/opt/gitlab   #与上面一样
--privileged=true         #让容器获取宿主机root权限
twang2218/gitlab-ce-zh    #镜像的名称,这里也可以写镜像ID

4、gitlab相关配置

4.1 进入容器环境
docker exec -it gitlab bash
也可通过docker-deskTop,通过点击刚生成的实例

4.2 修改gilab.rb文件

cd /etc/gitlab
vim gitlab.rb

修改ip和端口号

external_url 'http://xx.xx.xx.xx'  // 本地gitlab页面访问的ip或域名
gitlab_rails['gitlab_ssh_host'] = '192.168.XX.XX' //和上一个IP输入的一样
gitlab_rails['gitlab_shell_ssh_port'] = 8022 // 此端口是run时22端口映射的8022端口  这里不修改ssh 登录不成功 坑死了

4.3修改gitlab.yml文件

cd /opt/gitlab/embedded/service/gitlab-rails/config
vim gitlab.yml

找到host 和port

host:XXX 跟上面的ip和域名一样
port:XXX 容器80端口映射的那个端口,起初实例化更改的端口

4.3 重启服务
gitlab-ctl restart

4.4 修改密码
访问页面,修改密码
中文版本

 会先修改密码,然后登录,
 账号root,也可以注册一个非root的账号

非中文版本

 默认密码在`/etc/gitlab/initial_root_password`,如果不修改会一定时间过期
 账号也是root

6、配置ssh
务必认真参考gitlab推荐的官网去配置ssh配置推荐地址
如果常规配置后,ssh无法pull代码,需要在~/.ssh 下配置config文件 这里坑很大

7、安装gitlab-runner
brew install gitlab-runner
也可用docker pull 镜像,但我用docker pull镜像 然后注册runner 一直失败,汗

8、注册gitlab-runner
gitlab-runner register
然后按照步骤填写信息,注意token是git仓库对应一个token,
tags填写后,只有gitlab.yaml的tags对应后,runner 才会执行,填写tags证明是特有的runner,不填写是公用的runner
最后一步我选的shell

9、边写gitlab-ci.yml

stages:
     - install
     - build
     - deploy

cache:
  paths:
    - node_modules
    
.set-tags: &set-tags
  tags:
    - hello-world

install_job:
   <<: *set-tags
   stage: install
   script: npm install --registry=http://registry.npm.taobao.org

build_job:
    <<: *set-tags
    stage: build
    script: npm run build
    artifacts:
      paths:
        - dist
deploy_job:
   <<: *set-tags
   stage: deploy
   script:
      - echo 'start scp'
      - scp -r dist /usr/local/etc/nginx/mnt/builds // 本地电脑 ng 映射
      

最后一些坑 记录出来
1、docker 如果直接pull 会很慢,记得用阿里云或其他镜像
2、gitlab一开始启动后,访问主页会出现30-60s,无法访问页面
然后出现502,耐心等待,最后刷新即可
3、关联ssh 上面有写到
4、注册gitlab-runner后 如果是黑色感叹号,证明注册失败,慢慢调试吧

常见命令:

docker
docker ps  查看container
docker rm gitlab  
docker logs gitlab 查看日志

gitlab-runner
gitlab-runner list 查看
gitlab-runner verify --delete --name xxx  删除

which gitlab-runner  搜到出gitlab-runner 在哪里

参考文章:
1、docker
2、ssh配置
3、gitlab-runner
4、gitlab-ci.yml
比较有用的blog
5、安装gitlab步骤
6、全网第一的ci-cd教程 拿我格子衬衫


健儿
79 声望4 粉丝

掌握好原生js。