CentOS上GitLab容器化部署操作指南
sudo yum update -y)。sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo。sudo yum install -y docker-ce docker-ce-cli containerd.io。sudo systemctl start docker && sudo systemctl enable docker。sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose。sudo chmod +x /usr/local/bin/docker-compose。docker-compose --version。sudo mkdir -p /data/gitlab/{config,logs,data}。docker-compose.yml文件:/data/gitlab目录下创建docker-compose.yml,内容如下(根据实际情况调整端口和域名):version: '3.7'
services:
gitlab:
image: 'gitlab/gitlab-ce:latest'
container_name: gitlab
restart: always
hostname: 'gitlab.example.com' # 替换为你的域名或IP
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://gitlab.example.com' # 替换为实际访问地址
ports:
- '80:80' # HTTP
- '443:443' # HTTPS(需配置SSL)
- '22:22' # SSH
volumes:
- '/data/gitlab/config:/etc/gitlab'
- '/data/gitlab/logs:/var/log/gitlab'
- '/data/gitlab/data:/var/opt/gitlab'
/data/gitlab目录,执行sudo docker-compose up -d,等待容器启动完成(可通过docker-compose logs -f查看实时日志)。docker pull gitlab/gitlab-ce:latest。docker run -d \
--hostname gitlab.example.com \ # 替换为你的域名或IP
--name gitlab \
--restart always \
-p 80:80 -p 443:443 -p 22:22 \ # 映射端口
-v /data/gitlab/config:/etc/gitlab \ # 配置文件卷
-v /data/gitlab/logs:/var/log/gitlab \ # 日志卷
-v /data/gitlab/data:/var/opt/gitlab \ # 数据卷
gitlab/gitlab-ce:latest
注:
--restart always确保容器异常退出时自动重启;-v实现数据持久化,避免容器删除后数据丢失。
http://<服务器IP或域名>(如http://192.168.1.100),进入GitLab登录页面。root用户的初始密码(密码复杂度要求:至少8位,包含大小写字母、数字和特殊字符)。root账号和设置的密码登录,进入GitLab主界面。sudo yum install -y certbot python3-certbot-nginx。sudo certbot --nginx -d gitlab.example.com(替换为你的域名),按提示完成配置。docker-compose restart(或docker restart gitlab)。docker-compose.yml中的端口映射(如将80映射到8080):ports:
- '8080:80' # 将宿主机8080映射到容器80
修改后重启容器:docker-compose up -d,访问时使用http://<服务器IP或域名>:8080。/data/gitlab/config/gitlab.rb文件,添加以下配置(以QQ邮箱为例):gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "your_qq@qq.com" # 替换为你的QQ邮箱
gitlab_rails['smtp_password'] = "your_smtp_code" # 替换为QQ邮箱SMTP授权码
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
gitlab_rails['gitlab_email_from'] = "your_qq@qq.com" # 发件人邮箱
gitlab_rails['gitlab_email_domain'] = "qq.com" # 发件人域名
保存后重新配置GitLab:docker-compose exec gitlab gitlab-ctl reconfigure,重启容器使配置生效。-v参数挂载配置、日志和数据目录到宿主机,避免容器删除后数据丢失。docker-compose.yml中的端口映射(如将80映射到8080)。