06. centos7使用docker方式安装gitlab
gitlab 初体验,使用 docker 进行快速安装,遇到了端口修改不生效的问题,在此记录一下。
在正式环境中,gitlab 的容器版,应该使用 postgresql,redis,gitlab 三个组件,使用标准的 80 端口,提供稳定且有性能的企业服务。但如果是在测试环境,或是想在一个机器上运行多个服务,则 gitlab 不一定能使用到标准的 80 端口,那么,在部署时,需要如何调整配置呢?
ce 表示社区免费版、ee 表示企业收费版
一、启动 gitlab-ce 镜像
docker run -itd \
--publish 8443:443 \
--publish 8180:8180 \
--publish 8022:22 \
--name gitlab \
--restart unless-stopped \
-v /mnt/gitlab/config:/etc/gitlab \
-v /mnt/gitlab/log:/var/log/gitlab \
-v /mnt/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce
二、修改 gitlab.rb 文件
这是关键步骤,文件在/gitlab/etc/gitlab.rb,
假设宿主机 ip 为 192.168.0.110,external_url 和 nginx['listen_port']的端口需要和第一步的映射端口对应。
# 该配置的端口号会显示在克隆url
external_url 'http://192.168.0.110:8180'
# https需要下面这句
# nginx['redirect_http_to_https_port'] = 8180
nginx['listen_port'] = 8180
# 配置8022端口
gitlab_rails['gitlab_shell_ssh_port'] = 8022
三、重启镜像
docker restart gitlab
查看/gitlab/data/gitlab-rails/etc/gitlab.yml 文件(这个文件是根据 gitlab.rb 自动生成的,不要修改,否则会很麻烦),看到 port 为 8180,基本就大功告成!
gitlab.yml 是由 gitlab.rb 文件生成的,不要自行修改!
# This file is managed by gitlab-ctl. Manual changes will be
# erased! To change the contents below, edit /etc/gitlab/gitlab.rb
# and run `sudo gitlab-ctl reconfigure`.
production: &base
#
# 1. GitLab app settings
# ==========================
## GitLab settings
gitlab:
## Web server settings (note: host is the FQDN, do not include http://)
host: 192.168.0.110
port: 8180
https: false
# The maximum time unicorn/puma can spend on the request. This needs to be smaller than the worker timeout.
# Default is 95% of the worker timeout
max_request_duration_seconds: 57
四、启动测试
可以看到,git clone 里,已带上了自定义的 8180 端口,搞定!
五、进入ui页面提示密码错误,那么进入容器来修改下密码
首先,gitlab-ctl start 保证gitlab、redis同时处于启动状态。
然后使用命令进入修改密码状态:
docker exec -it gitlab /bin/bash
gitlab-rails console 进入gitlab串口环境下
>user = User.where(id: 1).first 定位到gitlab数据库中Users表中的一个用户,通常就是管理员用户admin@local.host
> user.password=12345678 重置管理员密码为12345678
> user.password_confirmation=12345678 确认管理员密码为12345678,小于8位会错误提示
> user.save! 保存更改信息,需要使用后面的感叹号!
如下提示代表成功:
> user.save!
Enqueued ActionMailer::DeliveryJob ...
=> true
登陆gitlab使用新密码可以成功登陆root