首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否有可能从以前安装的文件中恢复Gitlab?

是否有可能从以前安装的文件中恢复Gitlab?
EN

Stack Overflow用户
提问于 2022-10-22 16:21:03
回答 2查看 79关注 0票数 1

最近,我被迫从VPS主机迁移。当我被要求在租约结束前执行备份时,我不在家里,所以我没有时间备份所有的数据,因为备份应该已经执行,而且我的所有VPS数据都打包在一个.tar.gz中。

几乎所有事情都进展顺利,最后一件让我做噩梦的事情是恢复我以前的Gitlab数据。

这一次,我使用了Gitlab-CE的篡改版本。(gitlab/gitlab-ce:12.4.0-ce.0)

为了确保在此过程中没有使用错误的版本,我从备份中找到的一个许可证文件中提取了已安装的版本。

我已经确认,在没有将数据挂载到卷的情况下,此映像工作正常,但每当我试图装入从备份中恢复的卷时:

/home/gitlab/log:/var/log/gitlab /home/gitlab/data:/var/opt/gitlab /home/gitlab/config:/etc/gitlab

关于postgres db,我遇到了一个致命的错误:

执行psql:致命:数据库区域设置与操作系统不兼容 详细信息:数据库是用LC_COLLATE "en_US.UTF-8“初始化的,setlocale()无法识别。 提示:使用另一个地区重新创建数据库或安装丢失的区域设置。

我尝试过将ENV变量LANG、LANGUAGE、LC_ALL设置为不同的值,但没有任何运气。

到目前为止,我还无法在互联网上找到解决方案,我希望我能做一个适当的备份。

我的愿望是从我存储的旧安装中恢复旧存储库(如果可能的话,还可以恢复用户帐户)。

任何能把我引向可能的解决方案的东西都是非常感谢的!

这是我的第一个问题,所以请原谅我,如果它是不正确的,或者是在一个错误的部分被问到。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-10-24 06:53:24

这条线一样,尝试并检查是否缺少locale/tzdata:

代码语言:javascript
运行
复制
apt-get update && apt-get install -yqq locales tzdata && locale-gen en_US.UTF-8

这类似于问题/4,这意味着,如果它在运行时工作,您可能必须构建自己的GitLab映像,使用:

代码语言:javascript
运行
复制
RUN apt-get install -yqq locales locales-all tzdata && locale-gen en_US.UTF-8
票数 0
EN

Stack Overflow用户

发布于 2022-10-24 14:44:25

标记为接受的答案的解决方案工作得很好,对于进一步的读者来说,最后的解决方案是什么:

我已经创建了一个图像使用Dockerfile基于特定版本的官方gitlab码头形象,并包括地区包。

所涉的Dockerfile:

代码语言:javascript
运行
复制
FROM gitlab/gitlab-ce:12.4.0-ce.0

# Update packages
RUN apt-get update

# Install common software to aquire add-apt-repository command
RUN apt-get -y install software-properties-common

# Update packages
RUN apt-get update

# Add universe repository to get access to locales package
RUN add-apt-repository universe

# Update packages
RUN apt-get update

# Install missing locales & generate en_US one
RUN apt-get -y install -yqq locales locales-all tzdata && locale-gen en_US.UTF-8

# Continue with official gitlab-ce commands from their image...
# Wrapper to handle signal, trigger runit and reconfigure GitLab
CMD ["/assets/wrapper"]

HEALTHCHECK --interval=60s --timeout=30s --retries=5 \
CMD /opt/gitlab/bin/gitlab-healthcheck --fail --max-time 10

然后就简单了

代码语言:javascript
运行
复制
docker build - < Dockerfile

如果它是臃肿的,或有什么东西是不必要的,请随意纠正我,否则,这才是对我起作用的东西。

再次感谢@Vonc为我提供了最终的解决方案!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74165197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档