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-runnerbrew install gitlab-runner
也可用docker pull 镜像,但我用docker pull镜像 然后注册runner 一直失败,汗
8、注册gitlab-runnergitlab-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教程 拿我格子衬衫
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。