Docker部署GitLab 14.0,


一、部署环境说明

本文中使用本地VM虚机部署测试。

OS:CentOS Linux release 7.8.2003 (Core) 3.10.0-1160.24.1.el7.x86_64

IP:192.168.168.100

Docker Version:v20.10.7

Docker Compose:v1.29.2

虚机配置:2核CPU、4G内存

注:①系统为最小化安装,部署前已完成系统初始化、内核及安全优化;

②Docker及Docker Compose已安装;

③Iptables防火墙已启用,Docker服务启动容器时映射的端口会自动添加至Iptables防火墙相关规则中,不需要手动更改Iptables规则。

二、Docker方式部署

官方仓库镜像:

https://hub.docker.com/r/gitlab/gitlab-ce

官方部署文档:

https://docs.gitlab.com/ce/install/docker.html#installing-gitlab-community-edition

1.拉取最新版本镜像

  1. docker pull gitlab/gitlab-ce:latest 

2.构建容器

## 创建数据、日志及配置文件目录,用于挂载,实现数据持久化

  1. mkdir -p /data/gitlab/{data,logs,config} 

## 构建容器

  1. docker run -d --restart=always \ 
  2. --hostname gitlab --name=gitlab \ 
  3. -p 5443:443 -p 90:80 -p 1122:22 \ 
  4. -v /etc/localtime:/etc/localtime \ 
  5. -v /data/gitlab/config:/etc/gitlab \ 
  6. -v /data/gitlab/logs:/var/log/gitlab \ 
  7. -v /data/gitlab/data:/var/opt/gitlab \ 
  8. gitlab/gitlab-ce:latest 

## 部分参数说明

  1. -d:后台运行容器 
  2. --restart=always:在容器退出时总是重启容器(--restart选项通常只用于detached后台启动模式的容器) 
  3. --hostname gitlab:指定容器的主机名为gitlab 
  4. --name=gitlab :指定容器名称为gitlab 
  5. -p 5443:443 -p 90:80 -p 1122:22 :端口映射,映射宿主机的5443端口到容器内的443端口,映射宿主机的90端口到容器内的80端口,映射宿主机的1122端口到容器内的22端口。注:宿主机的端口可自定义没被应用服务占用的端口。 

## 目录映射说明

3.查看容器

  1. docker ps -a 
Docker部署GitLab 14.0

4.配置GitLab服务的访问地址

## 修改gitlab的配置文件

  1. vi /data/gitlab/config/gitlab.rb 
  2. 或 
  3. docker exec -it gitlab vi /etc/gitlab/gitlab.rb 
  4. //配置http协议所使用的访问IP地址 
  5. external_url 'http://192.168.168.100' 
Docker部署GitLab 14.0

注:设置 external_url ,绑定监听的域名或IP或IP+端口。若GitLab需通过公网访问,最好配置域名加HTTPS;若是内部网络访问,则可配置IP或IP+端口,也可配置域名,用户通过配置本地hosts解析访问。本文中为测试,使用IP方式,即 http://192.168.168.100。因构建容器时映射的是80端口。

## 方法一:重启容器

  1. docker restart gitlab 

## 方法二:重新加载GitLab配置

  1. docker exec -it gitlab gitlab-ctl reconfigure 
  2. //reconfigure需要时间,请耐心等待 

5.测试访问

## 查看初始化管理员帐户密码,密码存储在容器内的

/etc/gitlab/initial_root_password (即宿主机上的 /data/gitlab/config/initial_root_password )文件中。本文中初始化管理员帐户生成的密码为:2vLS5OiJNnFtvWMOXUgxBOjz38y7tm/JbyxvUx+jevg=

Docker部署GitLab 14.0

## 浏览器打开http://192.168.168.100:90即可访问到gitlab,因启动容器时,端口做了映射,使用访问时需加上端口。

Docker部署GitLab 14.0

## 输入初始化默认管理员账户: root 密码:

2vLS5OiJNnFtvWMOXUgxBOjz38y7tm/JbyxvUx+jevg=,登录。

Docker部署GitLab 14.0

## 登录成功后的首页。

Docker部署GitLab 14.0

## 接下来就可以使用GitLab了,本文中不一一阐述。

三、Docker Compose方式部署

1.下载docker-compose文件(也可不下载文件修改,直接创建)

  1. mkdir -p /data/gitlab 
  2. cd /data/gitlab 
  3. wget https://gitlab.com/gitlab-org/omnibus-gitlab/raw/master/docker/docker-compose.yml 

2.创建数据、日志及配置文件目录,用于挂载,实现数据持久化

  1. mkdir -p /data/gitlab/{data,logs,config} 

3.修改docker-compose文件

  1. cd /data/gitlab 
  2. vi docker-compose.yml 
  3. //修改hostname、external_url、ports、volumes参数选项值,增加container_name参数选项及对应值,如下 
  4. web: 
  5.   image: 'gitlab/gitlab-ce:latest' 
  6.   restart: always 
  7.   hostname: 'gitlab' 
  8.   container_name: gitlab 
  9.   environment: 
  10.     GITLAB_OMNIBUS_CONFIG: | 
  11.       external_url 'http://192.168.168.100' 
  12.   ports: 
  13.     - '90:80' 
  14.     - '5443:443' 
  15.     - '1122:22' 
  16.   volumes: 
  17.     - '/data/gitlab/config:/etc/gitlab' 
  18.     - '/data/gitlablogs:/var/log/gitlab' 
  19.     - '/data/gitlab/data:/var/opt/gitlab' 

4.启动容器

  1. cd /data/gitlab 
  2. docker-compose -f docker-compose.yml up -d 
Docker部署GitLab 14.0

5.查看运行状态

  1. docker ps -a 
  2. 或 
  3. docker-compose ps 
Docker部署GitLab 14.0

6.测试访问

## 查看初始化管理员帐户密码,密码存储在容器内的

/etc/gitlab/initial_root_password (即宿主机上的 /data/gitlab/config/initial_root_password )文件中。本文中初始化管理员帐户生成的密码为:EeIG48BOSA6mKrRypYeALSZwXxoD7/u5m4V17z/M/ec=

Docker部署GitLab 14.0

## 浏览器打开http://192.168.168.100:90即可访问到gitlab,因启动容器时,端口做了映射,使用访问时需加上端口。

Docker部署GitLab 14.0

## 输入初始化默认管理员账户: root 密码:

EeIG48BOSA6mKrRypYeALSZwXxoD7/u5m4V17z/M/ec=,登录。

Docker部署GitLab 14.0

## 登录成功后的首页。

Docker部署GitLab 14.0

## 接下来就可以使用GitLab了,本文中不一一阐述。

四、修改超级管理员密码

方法可参考之前本人发布的文章第八点:

https://www.toutiao.com/item/6982016081162469925/

相关内容