项目场景:
在Linux服务器中使用Docker安装GitLab,在gitlab启动后web访问一切正常,可在运行了一段时间后,就会一直包500/502的错误。
通过网上查看各种解决方案,发现都不是类似的问题。
问题描述
后经过各种折腾,查看日志发现有如下错误:
#进入容器
docker exec -it gitlab bash
#进入目录
cd /var/log/gitlab/gitlab-rails/
#查看日志
tail -fn 1000 production.log
原因分析:
进入容器通过命令(df -h)查看磁盘信息发现目录 /dev/shm/gitlab 目录已经被占满了,gitlab无法再写入。导致gitlab Web页面报错了。
既然发现了问题所在那么就已经解决大半了。那么我们只需要把 /dev/shm/扩容即可…
解决方案:
- 使用Docker具体步骤如下:
#停止容器
docker stop gitlab
#删除容器
docker rm gitlab
# 创建一个新的容器,并使用 --shm-size 参数来指定 /dev/shm 目录的容量。例如,设置容量为120GB:
docker run --name gitlab --shm-size=120g <image_name>
#启动容器
docker start gitlab
- 如果你使用Docker Compose来管理容器具体步骤如下:
#停止
docker-compose down
#修改docker-compose.yml 文件
services:
gitlab:
shm_size: 120G
#使用shm_size属性来指定/dev/shm 目录的容量
docker-compose -f docker-compose.yml up -d
最后通过上面两种不同方式解决后我们进入容器执行命令发现/dev/shm目录容量已经扩充。gitlab运行一段时间后也不会500/502了。
✿✿ヽ(°▽°)ノ✿
df -h