docker搭建Gitlab 服务器
[toc]
警告!
⚠️ 警告
个人纯属爱好,搭建个人的gitlab服务器,gitlab很消耗内存
前言
我需要在服务器上面部署一个仓库,方便提交,而且供主机和服务器之间的数据传输
- 系统:centos
安装镜像
🇫🇮查找镜像
# 查找Gitlab镜像
docker search gitlab
🤏拉取Gitlab镜像
docker pull gitlab/gitlab-ce:latest
🌠启动docker镜像
# 启动容器
docker run \
-itd \
-p 9980:80 \
-p 9922:22 \
-v D:\docker\gitlab\etc:/etc/gitlab \
-v D:\docker\gitlab\log:/var/log/gitlab \
-v D:\docker\gitlab\opt:/var/opt/gitlab \
--restart always \
--privileged=true \
--name gitlab \
gitlab/gitlab-ce
# 启动容器
docker run -itd -p 9980:80 -p 9922:22 -v D:\docker\gitlab\etc:/etc/gitlab -v D:\docker\gitlab\log:/var/log/gitlab -v D:\docker\gitlab\opt:/var/opt/gitlab --restart always --privileged=true --name gitlab gitlab/gitlab-ce
🎈 解释:
命令 | 描述 |
---|---|
-i | 以交互模式运行容器,通常与 -t 同时使用命令解释 |
-t | 为容器重新分配一个伪输入终端,通常与 -i 同时使用 |
-d | 后台运行容器,并返回容器 ID |
-p 9980:80 | 将容器内 80 端口映射至宿主机 9980 端口,这是访问 gitlab 的端口 |
-p 9922:22 | 将容器内 22 端口映射至宿主机 9922 端口,这是访问 ssh 的端口 |
-v /home/gitlab/etc:/etc/gitlab | 将容器 / etc/gitlab 目录挂载到宿主机 / usr/local/gitlab-test/etc 目录下,若宿主机内此目录不存在将会自动创建,其他两个挂载同这个一样 |
--restart always | 容器自启动 |
--privileged=true | 让容器获取宿主机 root 权限 |
--name gitlab | 设置容器名称为 gitlab |
gitlab/gitlab-ce | 镜像的名称,这里也可以写镜像 ID |
🤳修改配置
#进容器内部
docker exec -it gitlab /bin/bash
#修改gitlab.rb
vi /etc/gitlab/gitlab.rb
❤️ 加入如下
#gitlab访问地址,可以写域名。如果端口不写的话默认为80端口
external_url 'http://192.168.124.194'
#ssh主机ip
gitlab_rails['gitlab_ssh_host'] = '192.168.124.194'
#ssh连接端口
gitlab_rails['gitlab_shell_ssh_port'] = 9922
🤏让配置生效
gitlab-ctl reconfigure
⚠️ 注意不要重启,
/etc/gitlab/gitlab.rb
文件的配置会映射到gitlab.yml
这个文件,由于咱们在docker中运行,在gitlab
上生成的http
地址应该是http://192.168.124.194:9980,所以,要修改下面文件
# 修改http和ssh配置
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
gitlab:
host: 192.168.124.194
port: 9980 # 这里改为9980
https: false
🤏让配置生效 并且退出容器
gitlab-ctl reconfigure
exit
浏览器访问
路径访问:http://192.168.124.194:9980/
⚠️ 机器配置要大于
4g
,否则很容易启动不了,报502
- 第一次访问,会让修改root密码
- 修改后以root用户登录即可
修改密码
进入容器内部:
docker exec -it gitlab /bin/bash
进入控制台:
gitlab-rails console -e production
查询id为1的用户,id为1的用户是超级管理员:
user = User.where(id:1).first
修改密码为1234
:
user.password='1234'
保存:
user.save!
退出:
exit
重置管理员密码
进入docker gitlab 容器中
docker exec -it gitlab(容器名字) bash
进入gitlab 控制台
gitlab-rails console -e production #可能会等好几秒钟
搜索用户
#这里提供两种搜索方式 通过id
user = User.where(id:1).first
#或者 通过电子邮件搜索 或者用户名
user = User.find_by(email:'admin@example.com')
修改密码
⚠️ 注意:密码不能设置太简单,数据库没办法通过
#注意这两个选项都得设置,1234为你要设置的密码
user.password ='1234'
user.password_confirmation ='1234'
保存退出:wq
user.save!
exit
登陆成功😘😘