docker部署gitlab
这篇文章用来记录下我在使用docker部署gitlab时候遇到的一些坑。
  先介绍下我的环境:
  阿里云的轻量应用服务器:2核4G(好像最低要求配置,之前用2核2G的部署,直接给内存溢出),centos7.6
第一步:安装docker
具体安装步骤参考的是docker官方文档,主要就几个步骤就可以完成安装。
  1、卸载旧版本
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
2、安装yum-utils包
sudo yum install -y yum-utils
//配置镜像地址
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
//推荐使用阿里云的地址
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
3、安装 Docker 引擎
sudo yum install docker-ce docker-ce-cli containerd.io
按照提示输入y,就会完成安装
  4、启动 Docker
sudo systemctl start docker
5、验证是否安装成功
sudo docker run hello-world
docker会拉取hello-world镜像并执行,输出
  表示docker安装成功,可以正常使用
centos的 docker官方文档
第二步:使用docker部署gitlab
1、设置卷位置
对于 Linux 用户,将路径设置为/srv/gitlab:
export GITLAB_HOME=/srv/gitlab
对于 macOS 用户,请使用用户的$HOME/gitlab目录:
export GITLAB_HOME=$HOME/gitlab
2、使用 Docker 引擎安装 GitLab
sudo docker run --detach \
  --hostname 替换为你的域名或云服务器的公网ip \
  --publish 443:443 --publish 替换为你想要的端口(如8082):80 --publish 替换为你想要的端口(如8022):22 \
  --name gitlab \
  --restart always \
  --volume $GITLAB_HOME/config:/etc/gitlab \
  --volume $GITLAB_HOME/logs:/var/log/gitlab \
  --volume $GITLAB_HOME/data:/var/opt/gitlab \
  gitlab/gitlab-ce:latest
–hostname 设置访问的地址
  –name 设置镜像的别名
  –restart 设置系统重启时的操作,always 表示跟随系统启动而启动
  gitlab-ce: 表示安装的是gitlab的社区版,免费的,gitlab-ee:表示商业版,需要付费
3、等待gitlab下载安装完
  安装完后,通过命令 docker container ls 可以查看当前容器的状态,会提示starting,表示gitlab正在启动中
gitlab的docker部署的官方文档:gitlab docker方式部署
好了,到现在为止,按照官方文档的操作就已经完成
也是踩坑的开始
按照文档操作完后,输入部署时候设置的地址,访问失败
坑1: ERR_UNSAFE_PORT
--publish 10080:80 
当端口设置为10080的时,浏览器访问会提示ERR_UNSAFE_PORT,这是因为浏览器默认为这个端口为非安全端口,所以不能使用10080
坑2: ERR_CONNECTION_RESET
  端口设置为8082时,访问时提示ERR_CONNECTION_RESET,然后安装网上提示,通过firewall-cmd来设置防火墙放行端口,如:
firewall-cmd --zone=public --add-port=8082/tcp --permanent
但是,并没有什么用,还是访问不了,真是头大
  最后还是误打误撞的被解决掉了
  需要在服务区控制台的防火墙手动的添加放行端口
坑3: 新版的gitlab的root初始密码,在第一次登录的时候不能手动设置
  在可以访问部署好的gitlab后,访问地址,傻眼了,怎么和别人的不一样,怎么不能设置root密码。然后翻看gitlab打印的日志
  它提示把root密码存放到了这个文件内,可以通过命令打开复制密码登录
vim /etc/gitlab/initial_root_password
但是,我在docker里面的gitlab并没有找到这个文件,在非docker方式部署的gitlab,倒是可以找到这个文件。这就很奔溃。
  然后,我就索性重置root的密码,机智吧[😂]
重置gitlab的登录密码步骤:
  1、获取容器的id或者别名
docker ps 
2、进入容器
//gitlab为一开始设置的容器别名,也可以使用容器id
docker exec -it gitlab bash
3、启动Rails控制台
gitlab-rails console -e production
等待执行完,会进入输入模式
  4、获取用户,设置密码
//第一个默认为root
user = User.where(id: 1).first
//必须同时更改密码和password_confirmation才能使其正常工作
user.password = '新的密码'
user.password_confirmation = '新的密码'
5、保存
//保存,稍等一会就会执行刚才输入的代码
user.save!
6、退出容器
ctrl+d
然后就可以使用刚才输入的密码登录root账号了
 新一代开源开发者平台 GitCode,通过集成代码托管服务、代码仓库以及可信赖的开源组件库,让开发者可以在云端进行代码托管和开发。旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。
更多推荐


所有评论(0)