文章目录

  • 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社区版 群组成员 无法看到项目 gitlab看不到项目_docker


此时,我按照上述建议,使用以下命令重新安装新版本的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社区版 群组成员 无法看到项目 gitlab看不到项目_容器_02


问题出现:
刚刚使用的gitlab私有仓库,项目推送上去了,但是显示不出来,这是什么原因?

2、问题排查

2.1、检查端口

首先,想到的是gitlab的三个端口是否在安全组放行

  • 10443
  • 1022
  • 1080

100%确认上述三个端口已打开。

2.2、查看gitlab日志

在GitLab容器的命令行交互模式中,执行以下命令查看GitLab日志:

/var/log/gitlab/gitlab-rails/production.log  ## 查看GitLab Rails的生产日志

这将输出GitLab的生产日志,你可以根据需要进行查看和分析。

gitlab社区版 群组成员 无法看到项目 gitlab看不到项目_git_03


上述日志视乎没什么报错的地方,但是有个ip信息,这个ip是我机子的ip,使用这个ip给gitlab服务器发送请求,来获取项目信息; 信息显示不出来的原因应该就出现在这里。

2.3、查看ali安全日志

接着查看阿里上安全日志:

gitlab社区版 群组成员 无法看到项目 gitlab看不到项目_2d_04


我的ip发送的请求被拦截了,其中的部分功被云安全中心判定为漏洞攻击;问题找到了!!!

3、问题解决

将我的ip列为白名单:

gitlab社区版 群组成员 无法看到项目 gitlab看不到项目_docker_05


正常显示了。

4、容器日志时间与宿主机不一致问题

修改docker容器时间,使其与宿主机保持一致

  1. 先查看宿主机的系统时间
date -R
  1. 进docker容器查看时间
docker exec -it -u root 2d225da9c5a2 /bin/bash
  1. 查看容器系统时间
date -R
  1. 查看容器内部系统时区
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

gitlab社区版 群组成员 无法看到项目 gitlab看不到项目_容器_06


坚持下去,你会比你自己想象中的还要强大