安装docker和gitlab
ubuntu下安装docker
sudo apt-get install docker.io
docker下拉取gitlab镜像,由于环境较为庞大,一般要求计算机运行内存8g以上,运行效果较为良好
sudo docker pull gitlab/gitlab-ce
运行gitlab,也就是创建gitlab容器
sudo docker run --detach --publish 443:443 --publish 168:168 --publish 222:222 --name gitlab --restart always \
--volume /srv/gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
参数解析:
- —detach 后台运行
- —publish 端口映射 443为https浏览端口,80也就是我们访问的ip地址的端口,默认为80,22是ssh端口
- —restart always 设置自动重启
- —volume 由于docker是虚拟环境,一般把数据映射到本地比较好,这样删除容器,影响不是很大(当然一般不建议,很容易出问题)冒号前的为宿主机的本地地址,后面为docker gitlab里的环境
- 最后的为运行的镜像
后面实际部署过程中,由于出现了系列的问题,再没有备份的情况下删除了容器,再次创建容器时出现了问题,使用了下面的创建命令,解决(但不通用)
sudo docker run --privileged -e GITLAB_SKIP_UNMIGRATED_DATA_CHECK=true --detach --publish 443:443 --publish 80:1000 --publish 222:22 --name gitlab --restart always \
--volume /srv/gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
- —privileged 介绍说是给予比较高的权限,去执行数据的加载,以及环境的初始化
- -e GITLAB_SKIP_UNMIGRATED_DATA_CHECK=true 不去对之前的未迁移的数据进行校验,没有这个的时候,一直加载了不了数据
如果没有配置域名解析的话,项目的url默认为docker的hostname,也就是一串字符,需要修改为ip地址,docker的配置文件一般在(/home/gitlab/config/gitlab.rb)
vim /srv/gitlab/config/gitlab.rb # 如果提示没有权限,就赋予权限 chmod 777 /srv/gitlab/config/gitlab.rb
# 配置http协议所使用的访问地址,不加端口号默认为80,ip地址为安装gitlab的主机ip 地址,通过 ip addr 可以看到
external_url 'http://192.168.39.153'
# 配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = '192.168.39.153'
gitlab_rails['gitlab_shell_ssh_port'] = 222 # 此端口是run时22端口映射的222端口
:wq #保存配置文件并退出
# 需要重启gitlab,重新加载配置文件
sudo docker restart gitlab
sudo docker exec -it gitlab /bin/bash
gitlab-ctl reconfigure
gitlab-ctl restart
# 新增,后面要求使用路由器公网映射到内网的ip,所以clone地址要改为公网的ip加端口号,经过一系列的操作,总是失败,后面折中方案为
vim /srv/gitlab/data/gitlab-rails/etc/gitlab.yml
但是修改后只能直接 gitlab-ctl restart
不可直接gitlab-ctl reconfigure,不然配置的数据会被覆盖,目前没有解决方案
其他命令
sudo docker container ls -a # 列举运行中的容器
sudo docker logs -f gitlab # 实时查看gitlab容器的执行日志
sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password # 查看root账号初始密码
安装gitlab-runner
后面采用了jenkins集成,这一步也就跳过了
拉取镜像
sudo docker pull gitlab/gitlab-runner
运行gitlab-runner
sudo docker run -d --name gitlab-runner --restart always -v /srv/gitlab-runner/config:/etc/gitlab-runner -v /var/run/docker.sock:/var/run/docker.sock gitlab/gitlab-runner:latest
注册(也就是将gitlab和gitlab-runner联系起来)
docker run --rm -v /srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner register \
--non-interactive \
--executor "docker" \
--docker-image alpine:latest \
--url "http://192.168.39.153/" \
--registration-token "VtUo3W95QsTqM5ndb2uy" \
--description "airm2m-ci/cd" \
--tag-list "ci/cd" \
--run-untagged="true" \
--locked="false" \
--access-level="not_protected"