最近,我被迫从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设置为不同的值,但没有任何运气。
到目前为止,我还无法在互联网上找到解决方案,我希望我能做一个适当的备份。
我的愿望是从我存储的旧安装中恢复旧存储库(如果可能的话,还可以恢复用户帐户)。
任何能把我引向可能的解决方案的东西都是非常感谢的!
这是我的第一个问题,所以请原谅我,如果它是不正确的,或者是在一个错误的部分被问到。
发布于 2022-10-24 06:53:24
发布于 2022-10-24 14:44:25
标记为接受的答案的解决方案工作得很好,对于进一步的读者来说,最后的解决方案是什么:
我已经创建了一个图像使用Dockerfile基于特定版本的官方gitlab码头形象,并包括地区包。
所涉的Dockerfile:
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然后就简单了
docker build - < Dockerfile如果它是臃肿的,或有什么东西是不必要的,请随意纠正我,否则,这才是对我起作用的东西。
再次感谢@Vonc为我提供了最终的解决方案!
https://stackoverflow.com/questions/74165197
复制相似问题