文章目录
- 1、问题提出
- 2、问题排查
- 2.1、检查端口
- 2.2、查看gitlab日志
- 2.3、查看ali安全日志
- 3、问题解决
- 4、容器日志时间与宿主机不一致问题
1、问题提出
Gitlab是我用docker部署在阿里云服务器上,当时gitlab的版本使用的是:gitlab/gitlab-ce:latest;这个版本的gitlab,阿里云云防火墙检测报了一个 敏感信息泄漏漏洞,建议要求升级Gitliab 至 14.8.2、14.7.4或14.6.5 及其以上。
此时,我按照上述建议,使用以下命令重新安装新版本的Gitlab。
docker部署gitlab的命令:
docker run --detach \
--name gitlab \
--restart always \
-p 1080:80 \
-p 10443:443 \
-p 1022:22 \
-v /gitlab/config:/etc/gitlab \
-v /gitlab/logs:/var/log/gitlab \
-v /gitlab/data:/var/opt/gitlab \
--privileged=true \
gitlab/gitlab-ce:14.8.2-ce.0
经过安装和配置后,推送项目到gitlab,访问gitlab页面如下:
问题出现:
刚刚使用的gitlab私有仓库,项目推送上去了,但是显示不出来,这是什么原因?
2、问题排查
2.1、检查端口
首先,想到的是gitlab的三个端口是否在安全组放行
- 10443
- 1022
- 1080
100%确认上述三个端口已打开。
2.2、查看gitlab日志
在GitLab容器的命令行交互模式中,执行以下命令查看GitLab日志:
/var/log/gitlab/gitlab-rails/production.log ## 查看GitLab Rails的生产日志
这将输出GitLab的生产日志,你可以根据需要进行查看和分析。
上述日志视乎没什么报错的地方,但是有个ip信息,这个ip是我机子的ip,使用这个ip给gitlab服务器发送请求,来获取项目信息; 信息显示不出来的原因应该就出现在这里。
2.3、查看ali安全日志
接着查看阿里上安全日志:
我的ip发送的请求被拦截了,其中的部分功被云安全中心判定为漏洞攻击;问题找到了!!!
3、问题解决
将我的ip列为白名单:
正常显示了。
4、容器日志时间与宿主机不一致问题
修改docker容器时间,使其与宿主机保持一致
- 先查看宿主机的系统时间
date -R
- 进docker容器查看时间
docker exec -it -u root 2d225da9c5a2 /bin/bash
- 查看容器系统时间
date -R
- 查看容器内部系统时区
cat /etc/timezone (查看容器内部系统时区,显示的是Etc/UTC)
修改容器时间
5. 创建容器时间:
echo Asia/Shanghai >/etc/timezone
6、退出进入的容器
exit
7、将宿主日期复制到容器内部:
docker cp /usr/share/zoneinfo/Asia/Shanghai 2d225da9c5a2:/etc/localtime
8、重启jenkins容器
docker restart 2d225da9c5a2
坚持下去,你会比你自己想象中的还要强大