使用docker部署gitlab之后,数据迁移的问题

专业酱油党 发布于 2018/02/26 21:39
阅读 3K+
收藏 0

1、说明一下背景:

现在公司用的gitlab用docker部署在192.168.50.119上面,目前在正常使用,但是由于各种因素,需要将gitlab的数据迁移到另一台机器,如192.168.50.118。

2、在119机器上用docker部署gitlab的命令如下

docker run --detach --hostname 192.168.50.119  --publish 444:443 --publish 8888:80 --name gitlab --restart always --volume /srv/gitlab/config:/etc/gitlab --volume /srv/gitlab/logs:/var/log/gitlab --volume /srv/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:latest

这个命令部署完成之后,会在本地/srv/gitlab/下有3个目录,分别是config,data,logs

3、迁移步骤以及迁移中遇到的问题:

3.1、迁移步骤:把整个/srv/gitlab目录打包,然后覆盖到118那台机器,然后用同样的命令进行启动

3.2、遇到的问题,覆盖了3个文件之后再启动遇到了如下的错误

一直找不到问题所在,看到错误里,有用到git用户,但是,我执行了sudo su - git,提示没git这个用户。有人遇到过这个问题吗??感激不尽

 

加载中
0
F
FrankNie
看错误日志,是文件权限问题吧
0
专业酱油党
专业酱油党

引用来自“FrankNie”的评论

看错误日志,是文件权限问题吧

嗯,docker 执行完 /opt/gitlab/embedded/service/gitlab-shell/bin/gitlab-keys check-permissions 这个权限检查之后,报了以下的目录跟权限有关的,但是,不知道到底是什么样的权限,什么用户

    from /opt/gitlab/embedded/lib/ruby/2.3.0/logger.rb:703:in `open'
    from /opt/gitlab/embedded/lib/ruby/2.3.0/logger.rb:703:in `open_logfile'
    from /opt/gitlab/embedded/lib/ruby/2.3.0/logger.rb:695:in `set_dev'
    from /opt/gitlab/embedded/lib/ruby/2.3.0/logger.rb:635:in `initialize'
    from /opt/gitlab/embedded/lib/ruby/2.3.0/logger.rb:353:in `new'
    from /opt/gitlab/embedded/lib/ruby/2.3.0/logger.rb:353:in `initialize'
    from /opt/gitlab/embedded/service/gitlab-shell/lib/gitlab_logger.rb:15:in `new'
    from /opt/gitlab/embedded/service/gitlab-shell/lib/gitlab_logger.rb:15:in `<top (required)>'
    from /opt/gitlab/embedded/service/gitlab-shell/lib/gitlab_keys.rb:4:in `require_relative'
    from /opt/gitlab/embedded/service/gitlab-shell/lib/gitlab_keys.rb:4:in `<top (required)>'
    from /opt/gitlab/embedded/service/gitlab-shell/bin/gitlab-keys:24:in `require'
    from /opt/gitlab/embedded/service/gitlab-shell/bin/gitlab-keys:24:in `<main>'

 

0
翠翠
翠翠

用户和权限去原先的 docker 镜像里看啊。

 

0
zjl_bright
zjl_bright

和你遇到同样的问题

0
CrazyJ
CrazyJ

chown -Rf polkitd:ods data/ config/ logs/

直接修改权限

0
g
gtry

日志上面有说:

If this container fails to start due to permission problems try to fix it by executing:

  docker exec -it gitlab update-permissions
  docker restart gitlab

 

0
哎码
哎码

看看是不是这几个文件夹有当前用户无法访问的

0
future-c
future-c

日志中提到了

docker exec -it gitlab update-permissions  

docker restart gitlab

但是因为权限问题,容器启动之后很快就会关闭,所以执行第一条命令会提示容器未运行,

最好的解决办法就是,启动容器之后,迅速执行 docker exec -it gitlab update-permissions  ,然后迅速执行docker restart gitlab,就成功了,亲测有效。别等到容器挂了才执行。

返回顶部
顶部