基于Ubuntu下以Docker方式gitlab软件的部署
环境:
linux宿主机版本:ubuntu 20.04
虚拟机版本: VMWare 16.1.2
gitlab版本:14.0
1.安装Docker Compose
之所以没有采用docker engine 是因为doker compose有yml配置文件易于记录,方便管理。
1.1 下载curl
已经下载次软件的可忽略。
1.2 安装compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
1.3 增加可执权
sudo chmod +x /usr/local/bin/docker-compose
1.4 查看compose版本
docker-compose --version
返回结果
docker-compose version 1.29.2, build 5becea4c
2.创建docker-compose.yml配置文件
2.1 配置文件内容如下
web:
image: 'gitlab/gitlab-ee:latest'
restart: always
hostname: 'gitlab.example.com'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'https://gitlab.example.com'
# Add any other gitlab.rb configuration here, each on its own line
ports:
- '80:80'
- '443:443'
- '22:22'
volumes:
- '/home/gitlab/config:/etc/gitlab'
- '/home/gitlab/logs:/var/log/gitlab'
- '/home/gitlab/data:/var/opt/gitlab'
2.2 启动gitlab
2.2.1 启动之前安装docker
有两种安装方式:
sudo snap install docker # version 19.03.13, or
sudo apt install docker.io # version 20.10.2-0ubuntu1~20.04.2
我这里采用snap方式安装。
安装好之后输
docker --version
返回
Docker version 19.03.13, build cd8016b6bc
2.2.2 超级管理员模式运行
sudo docker-compose up -d
3.gitlab所必须的文件夹创建
/home/gitlab/config
/home/gitlab/logs
/home/gitlab/data
对以上路径进行配置读写权限
chmod 666 *
以上文件的路径要与配置文件docker-compose.yml对应。
4.gitlab-console设置root用户名密码
4.1 登录gitlab所在容器
docker exec -it 11c /bin/bash
4.2 登陆控制台
gitlab-rails console -e production
4.3 找到root用户
user=User.where(id:1).first
输出
=> #<User id:1 @root>
4.4 修改密码并保存
irb(main):005:0> user.password=12345678
=> 12345678
irb(main):006:0> user.password_confirmation=12345678
=> 12345678
irb(main):007:0> user.save!
Enqueued ActionMailer::DeliveryJob (Job ID: 53d8c7ea-c523-43a1-a5e6-032c836f4870) to Sidekiq(mailers) with arguments: "DeviseMailer", "password_change", "deliver_now", gid://gitlab/User/22
=> true
4.5 登录界面登录
4.6 管理员账户登录之后界面
5 gitlab加载配置最快方式
进入gitlab docker形式命令行
docker exec -it 11c /bin/bash
重新加载配置
gitlab-ctl reconfigure
关闭
gitlab-ctl stop
启动gitlab
gitlab-ctl start