1.运行
1. docker-compose
docker-compose-gitlab.yml up
version: '3'
services:
gitlab:
image: 'gitlab/gitlab-ce'
container_name: gitlab
restart: always
environment:
TZ: 'Asia/Shanghai'
GITLAB_OMNIBUS_CONFIG: |
gitlab_rails['time_zone'] = 'Asia/Shanghai'
ports:
- '7881:80'
- '7883:443'
- '7882:22'
volumes:
- /home/gitlab/config:/etc/gitlab
- /home/gitlab/data:/var/opt/gitlab
- /home/gitlab/logs:/var/log/gitlab
privileged: true
- 7881 为http端口
- 7882 为ssh端口
- xx.xxx.xxx.xx 服务器ip
启动命令
docker-compose -f docker-compose-gitlab.yml up
2.docker run
docker run
-itd
-p 7881:80
-p 7882:22
-v /home/gitlab/etc:/etc/gitlab
-v /home/gitlab/log:/var/log/gitlab
-v /home/gitlab/opt:/var/opt/gitlab
--restart always
--privileged=true
gitlab/gitlab-ce:14.9.0-ce.0
注意
启动慢 记得查看日志
运行 gitlab 启动需要比较长的时间 通过docker logs -f id
一定要给文件夹 设置权限
chmod 777 /home/gitlab
有时候绑定的http 端口 变化,不一定是80
7881:80 7881:8080 7881:3000
2.其他版本
- gitlab/gitlab-ce:14.9.0-ce.0
- drud/gitlab-ce
3.配置调整
注意 修改 `修改容器配置` 和 `2.修改http和ssh配置` 请根据实际情况调整,有些服务器可以不设置。
有些配置了还是不行,只能本机访问服务,其他电脑无法访问时,可以另外安装nginx转发gitlab服务解决。
1.修改容器配置
docker exec -it gitlab /bin/bash
修改gitlab.rb
vi /etc/gitlab/gitlab.rb
## 加入如下
# gitlab访问地址,可以写域名。如果端口不写的话默认为80端口
external_url 'http://xx.xx.xx.xx:7881'
# ssh主机ip
gitlab_rails['gitlab_ssh_host'] = 'xx.xx.xx.xx'
# ssh连接端口
gitlab_rails['gitlab_shell_ssh_port'] = 7882
让配置生效
gitlab-ctl reconfigure
注意不要重启,/etc/gitlab/gitlab.rb文件的配置会映射到gitlab.yml这个文件,所以在gitlab上会自动生成的http地址应该是 http://xx.xx.xx.xx:7881
2.修改http和ssh配置
# 检查是否生效,没有的话手工修改,并重启服务
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
gitlab:
host: xx.xx.xx.xx
port: 7881 # 这里改为7881
https: false
# 重启
gitlab-ctl restart
# 退出容器
exit
4.查询与修密码
方法1 直接查密码
# 账号
root
# 密码
cat /home/gitlab/config/initial_root_password
方法2 修改密码
docker exec -it gitlab /bin/bash
# 进入控制台
gitlab-rails console -e production
# 查询id为1的用户,id为1的用户是超级管理员
user = User.where(id:1).first
# 修改密码为mj
user.password='qwe123456'
# 保存
user.save!
# 退出
exit
5.gitlab 不同版本迁移
- 老版本 11.2.3
- 新版本 15.11.3
只能先把老的版还原到相同的docker版本
然后根据官方的指引升级
- GitLab 8:
8.11.Z
>8.12.0
>8.17.7
- GitLab 9:
9.0.13
>9.5.10
- GitLab 10:
10.0.7
>10.8.7
- GitLab 11:
11.0.6
>11.11.8
- GitLab 12:
12.0.12
>12.1.17
>12.10.14
- GitLab 13:
13.0.14
>13.1.11
>13.8.8
>13.12.15
- GitLab 14:
14.0.12
>14.3.6
>14.9.5
>14.10.5
- GitLab 15:
15.0.5
>15.1.6
(for GitLab instances with multiple web nodes) >15.4.6
> latest15.Y.Z
可以先上hub.docker.com 搜索是否都有这些要升级的版本
- 相同版本同步脚本
# 1. 检查当前版本
docker exec gitlab cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
# 2. 进入容器
docker exec -it gitlab bash
# 3. 备份文件 存储在 /var/opt/gitlab/backups/下面
gitlab-rake gitlab:backup:create
# 生成文件 /var/opt/gitlab/backups/1684222315_2023_05_16_15.11.3_gitlab_backup.tar
# 4. 复制上面的备份文件到 另外一台服务器,相同的路径 ,前提两台电脑已经添加秘钥
cp /home/gitlab/data/backups/1684222315_2023_05_16_15.11.3_gitlab_backup.tar
root@xxx.xx.xx.xx://home/gitlab/data/backups/
# 5. 进入容器
docker exec -it gitlab bash
# 6. 设置文件权限
chmod -R 777 1684222315_2023_05_16_15.11.3_gitlab_backup.tar
# 7. 停止数据库操作服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
# 8. 开始还原 注意这里只需要写_gitlab_backup.tar 前面的文件名即可
gitlab-rake gitlab:backup:restore BACKUP=1684222315_2023_05_16_15.11.3
# 9. 重启服务
gitlab-ctl restart
- 不同docker版本配置
version: '3'
services:
gitlab:
image: 'gitlab/gitlab-ce' # 这里一直修改 gitlab/gitlab-ce:11.0.6 gitlab/gitlab-ce:11.11.8
container_name: gitlab
restart: always
environment:
TZ: 'Asia/Shanghai'
GITLAB_OMNIBUS_CONFIG: |
gitlab_rails['time_zone'] = 'Asia/Shanghai'
ports:
- '7881:80'
- '7883:443'
- '7882:22'
volumes:
- /home/gitlab/config:/etc/gitlab
- /home/gitlab/data:/var/opt/gitlab
- /home/gitlab/logs:/var/log/gitlab
privileged: true