记一次作死升级Docker/gitlab失败

前言

今晚心血来潮,在机器上apt-get update&& upgrade了下,发现了个docker-ce的更新,然后作死发现我的docker 版本还是17.x,都8102年了,让人知道我还在用17.x多不好,于是作死升级了docker-ce.

ps: 我使用的gitlab image

gitlab开始挂啦

升级后,人工start了一些没有start成功的容器后,打开gitlab,发现500了, 于是发现事情不对啦…

尝试恢复

作死的是,我尝试docker-compose pull了新镜像,然后重启重新创建,还是挂得…

恢复备份试试看咯

幸好此镜像自带了每天备份打包到本地附送备份至s3,所以虽然挂了,我一点也不慌。

查看了下backup,最近一个备份是今日早上9点,看来问题不大,于是开始恢复之旅。

恢复之旅

首先,安装官方文档,尝试第一次恢复

然后报错:

Google搜索,找到github的一个issue也有类似的问题,并且有人提供了解决方案。

Starting the gitlab container
Enter the gitlab’s bash shell
Execute /sbin/entrypoint.sh app:rake gitlab:backup:restore to restore a backup
When restore finish, just restart gitlab container, and all is done.

按照此方案,又遇到了个问题:

Google之,然后进入redis-cli执行:

重新恢复备份,重启后,终于恢复😀

少了几个commit,push下又是一条好汉。

后记

备份很重要!!

此次恢复只用到了本地备份,并没有用到s3的备份。正因有最近几天的备份以及s3上一个月的备份,所以恢复过程还是不慌不忙的。

升级docker之类的,还是要慎重,升级之前还是不要太自信,还是先给重要的数据都做个备份以防万一。

使用Docker安装Gitlab

对于自己的私有项目来说,一直托管在bitbucket,最近开始研究CI,虽然Bitbucket现在也有pipelines了,也有免费额度,但是每个月的build time可能对于自己不是很够用,不是就开始捣鼓了Gitlab.

Gitlab虽然有一个一键安装脚本,但是依赖太多,会将本地环境,包括nginx都替代掉,这时候用Docker在合适不过了,这里我们以Debian/Ubuntu下安装Docker以及docker-compose为例。

安装 Docker

安装docker-compose

docker-compose可以使用pip安装,所以这里我们先安装pip.

安装好后使用pip安装docker-compose:

安装Gitlab

Gitlab这里推荐2个image,一个是官方,一个是第三方。

备份

若使用官方镜像,只需要打包data目录: '/srv/gitlab ,而sameersbn/docker-gitlab的data在 /srv/docker/gitlab

[OS X]小技巧: SSH连接远程vps长时间不操作不掉线

用*nix的Terminal远程连接VPS的时候,长时间不操作,就会掉,这时候可以已通过修改sshd_config,来使得长时间不操作,也不会掉线。

Linux下,可以通过修改 /etc/ssh/sshd_config 文件,添加

ServerAliveInterval 20
ServerAliveCountMax 1993

而OS X的此文件在 /etc/sshd_config,修改内容同上。

添加的内容意思为,每隔20秒向服务器请求一次心跳,超过1993次没响应就认为掉线。
注:以上修改均在客户端修改,而不是在VPS上修改。

Debian7下安装Nginx+PHP+MariaDB

 

安装Nginx
Debian官方源里面的Nginx比较老,所以我们用Dotdeb源来安装Nginx。
添加Dotdeb源,使用vim打开 /etc/apt/sources.list:

vim /etc/apt/sources.list

添加如下两行:

deb http://packages.dotdeb.org wheezy all

deb-src http://packages.dotdeb.org wheezy all

导入GnuPG key:

wget http://www.dotdeb.org/dotdeb.gpg cat dotdeb.gpg | apt-key add –

然后安装Nginx

apt-get install -y nginx-full

继续阅读“Debian7下安装Nginx+PHP+MariaDB”