docker 部署gitlab11.8.0

获取镜像

docker pull gitlab/gitlab-ce:11.8.0-ce.0

启动容器

使用如下脚本

#!/bin/bash

mkdir -p gitlab/etc
mkdir -p gitlab/log
mkdir -p gitlab/data

docker run \
-d              \
-p 8443:443      \
-p 80:80       \
-p 8022:22       \
--restart always \
--name gitlab   \
-v $PWD/gitlab/etc:/etc/gitlab    \
-v $PWD/gitlab/log:/var/log/gitlab   \
-v $PWD/gitlab/data:/var/opt/gitlab  \
--privileged=true        \
gitlab/gitlab-ce:11.8.0-ce.0

修改配置

vim gitlab/etc/gitlab.rb 

# 配置http协议所使用的访问地址,不加端口号默认为80
external_url 'http://10.0.1.181'

#配置ssh协议所使用的访问地址
gitlab_rails['gitlab_ssh_host'] = '10.0.1.181'
#配置ssh协议所使用的访问端口,此端口是run时22端口映射的8022端口
gitlab_rails['gitlab_shell_ssh_port'] = 8022

:wq #保存配置文件并退出
        
# 重启gitlab容器
 docker restart gitlab

修改root登录密码

# 进入容器内部
docker exec -it gitlab /bin/bash

# 进入控制台
gitlab-rails console -e production

# 查询id为1的用户,id为1的用户是超级管理员
user = User.where(id:1).first
# 修改密码为12345678
user.password='12345678'
# 保存
user.save!
# 退出
exit;

也可以 用 下面 命令直接查找 root 初始化密码 然后在页面手动修改

docker exec -it gitlab grep "Password:’ /etc/gitlab/initial_root_password"

登录web直接输入: 10.0.1.181即可,因为默认端口80被映射出来了。用户名 root ,密码 12345678,首次登陆提示修改密码,按照提示修改即可。

如果使用默认端口如果启动不了可以按照如下方式尝试

如果无法创建项目:进入到容器后执行 chmod 777 /tmp -R

如果无法ssh方式克隆:进入到容器后执行 mkdir /var/run/sshd

参考配置:

external_url 'http://git.abc.com'
gitlab_rails['gitlab_ssh_host'] = 'git.abc.com'
gitlab_rails['gitlab_shell_ssh_port'] = 22 # 此端口是run时22端口映射的222端口

常用操作

  1. 如果远程仓库地址发生改变需要修改本地仓库对应远程仓库的url时可以使用如下命令:git remote set-url origin <新的仓库URL>
  2. 备份:默认目录为/var/opt/gitlab/backups,自定义备份目录需要赋予目录git权限。
    1. 自定义目录的配置文件修改 /etc/gitlab/gitlab.rb
      1. gitlab_rails['manage_backup_path'] = true
      2. gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
    2. 手动备份
      1. 使用命令:gitlab-rake gitlab:backup:create
  3. 恢复备份:
    1. 首先把需要恢复的备份放到默认备份目录下
    2. 其次停止相关服务
      1. gitlab-ctl stop unicorn
      2. gitlab-ctl stop sideki
    3. 最后恢复:gitlab-rake gitlab:backup:restore
  4. 修改配置重新加载命令:gitlab-ctl reconfigure
  5. 扩展:定时操作(比如备份)
    1. 使用命令:crontab
      1. crontab -e
         0 3 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1
      2. 说明
        1. 
          上述时间格式为:分时日月周
          m: 表示分钟,可以是从0到59之间的任何整数。
          h:表示小时,可以是从0到23之间的任何整数。
          dom:表示日期,可以是从1到31之间的任何整数。
          mon:表示月份,可以是从1到12之间的任何整数。
          dow:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
          user : 表示执行的用户。
          command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

相关问题解决方案

1.找回root密码

gitlab-rails console
user = User.where(id: 1).first
user.password = '密码'
user.password_confirmation = '密码'
user.save!

理论上需要重启服务,实际不用重启也生效。

2.客户端克隆失败

2.1 已经添加公钥到gitlab并且失败

执行如下2个命令就可以解决:

eval "$(ssh-agent -s)"
ssh-add

说明:

ssh-agent是一种控制用来保存公钥身份验证所使用的私钥的程序,ssh-agent是个长时间持续运行的守护进程(daemon),设计它的唯一目的就是对解密的专用密钥进行高速缓存,ssh-agent启动时高速缓存当然是空的,里面不会有解密的专用密钥,在我们真能使用ssh-agent之前,首先还需要使用ssh-add命令把我们的专用密钥添加到ssh-agent的高速缓存中(ssh-add (私钥地址)),如果不加默认地址是~/.ssh/id_rsa

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值