记一次作死升级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点,看来问题不大,于是开始恢复之旅。 恢复之旅 首先,安装官方文档,尝试第一次恢复 docker-compose run --rm gitlab app:rake gitlab:backup:…

使用Docker 打包部署Laravel 应用

Laravel是目前最流行的PHP框架,特点是开发速度快,当然部署也麻烦。 传统部署流程: Composer安装依赖 使用Apache/Nginx进行部署Laravel的Web接口 使用Supervisor作为Laravel队列服务的进程守护 设置crontab定期执行Laravel的定时任务 看起来,每次部署Laravel还是挺麻烦的,有了Docker后,我们可以使用Docker的特性来集成基本的部署操作,并且由于容器的特性,还可以使的应用跑的时候更加安全。 使用Apache打包基础镜像 这里我们使用的基础镜像为: php:7.1-apache,之后可以使用docker-php-ext-install安装我们需要的PHP扩展。 完整的Apache基础镜像Dockerfile参见Github. 使用Composer安装依赖 # 拷贝代码到html目录 COPY . /var/www/html # 安装Composer RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer # 安装依赖 ONBUILD RUN cd /var/www/…

使用Docker安装Gitlab

对于自己的私有项目来说,一直托管在bitbucket,最近开始研究CI,虽然Bitbucket现在也有pipelines了,也有免费额度,但是每个月的build time可能对于自己不是很够用,不是就开始捣鼓了Gitlab. Gitlab虽然有一个一键安装脚本,但是依赖太多,会将本地环境,包括nginx都替代掉,这时候用Docker在合适不过了,这里我们以Debian/Ubuntu下安装Docker以及docker-compose为例。 安装 Docker apt-get install curl curl -fsSL https://get.docker.com/ | sh curl -fsSL https://get.docker.com/gpg | apt-key add - 安装docker-compose docker-compose可以使用pip安装,所以这里我们先安装pip. apt-get install python3-setuptools easy_install3 pip 安装好后使用pip安装docker-compose: pip install docker-compose…