Ubuntu 系统下基于Docker 运行GitLab
- 环境信息
# 1.1 硬件信息 5年戴尔小破本:4 core 8g i5 # 1.2 系统版本 axuduo@axuduo:~$ uname -a Linux axuduo 5.15.0-56-generic #62-Ubuntu SMP Tue Nov 22 19:54:14 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux # 1.3 docker 版本 axuduo@axuduo:~$ docker -v Docker version 20.10.22, build 3a2c30b # 1.4 gitlab信息 axuduo@axuduo:~$ sudo docker images REPOSITORY TAG IMAGE ID CREATED SIZE gitlab/gitlab-ce latest 46cd6954564a 12 months ago 2.36GB
- docker 安装
# 2.1 更新及安装GPG证书
sudo apt update sudo apt-get install ca-certificates curl gnupg lsb-release
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# 2.2 添加阿里云软件源信息
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# 2.3 安装docker
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common# 2.4 重启docker
service docker restart# 2.5 配置阿里云镜像加速,此处为就改动了哈
XXXXX
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://XXXXX.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
# 2.6 设置开机启动 sudo systemctl enable docker # 2.7 单独的启动命令 sudo systemctl start docker
- gitlab 拉取
# 3.1 查找镜像
axuduo@axuduo:~$ sudo docker search gitlab/gitlab-ce
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
gitlab/gitlab-ce GitLab Community Edition docker image based … 3778 [OK]
# 3.2 拉取镜像
sudo docker pull gitlab/gitlab-ce:latest# 3.2 创建容器运行挂载本地文件夹
mkdir gitlab gitlab/etc gitlab/log gitlab/opt# 3.3 运行容器
docker run -id -p 1111:80 -p 2222:22 -v /axuduo/gitlab/etc:/etc/gitlab -v /axuduo/gitlab/log:/var/log/gitlab -v /axuduo/gitlab/opt:/var/opt/gitlab --restart always --privileged=true --name gitlab gitlab/gitlab-ce
=======命令解释=======
-i 以交互模式运行容器,通常与 -t 同时使用命令解释:
-d 后台运行容器,并返回容器ID
-p 1111:80 将容器内80端口映射至宿主机1111端口,这是访问gitlab的端口
-p 2222:22 将容器内22端口映射至宿主机2222端口,这是访问ssh的端口
-v ./gitlab/etc:/etc/gitlab 将容器/etc/gitlab目录挂载到宿主机./gitlab/etc目录下,若宿主机内此目录不存在将会自动创建,其他两个挂载同这个一样
--restart always 容器自启动
--privileged=true 让容器获取宿主机root权限
--name gitlab-test 设置容器名称为gitlab
gitlab/gitlab-ce 镜像的名称,这里也可以写镜像ID - 修改配置
# 4.1 进入容器内修改配置
sudo docker exec -it gitlab /bin/bash
# 4.2修改gitlab.rb
vi /etc/gitlab/gitlab.rb***************************因为本机配置较低所以采用基础配置*************
#设置超时
puma['worker_timeout'] = 60
#设置最小进程
puma['worker_processes'] = 2
#设置最小线程
puma['min_threads'] = 4
#设置最大线程
puma['max_threads'] = 4
#设置最大内存使用量
puma['per_worker_max_memory_mb'] = 1024
#设置最大并发数
sidekiq['max_concurrency'] = 5
#设置缓存大小
postgresql['shared_buffers'] = "256MB"
*****************************************************************
# gitlab访问地址,可以写域名。如果端口不写的话默认为80端口
external_url 'http://127.0.0.1'
# ssh主机ip
gitlab_rails['gitlab_ssh_host'] = '127.0.0.1'
# ssh连接端口
gitlab_rails['gitlab_shell_ssh_port'] = 2222
# 4.3 让配置生效
gitlab-ctl reconfigure
#4.4 修改http和ssh配置
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
gitlab:
host: 127.0.0.1
port: 1111 # 这里改为1111
https: false
# 4.5 重启
gitlab-ctl restart
# 4.6 退出容器
exit - 设置初始密码
# 5.1 入容器内部 sudo docker exec -it gitlab /bin/bash
# 5.2 进入控制台 gitlab-rails console -e production
# 5.3 查询id为1的用户,id为1的用户是超级管理员 user = User.where(id:1).first
# 5.4 修改密码为:abcd!@#456 user.password='abcd!@#456' # 5.5保存 user.save! # 退出 exit - 浏览器登陆
127.0.0.1:9080/admin
user:root
password:abcd!@#45