DOCKER模式部署GITLAB

1.系统准备

服务器操作系统 ubuntu 24.04 mini安装

1.1 更新系统

apt update && sudo apt upgrade -y

1.2 安装必要工具

apt install -y curl wget nano

  1. 安装Docker和Docker Compose

2.1 安装Docker

curl -fsSL https://get.docker.com | sudo sh

执行失败,反复多次,无果。

尝试直接安装docker-ce及相关组件

apt install -y docker-ce docker-ce-cli containerd.io

仍报错

手动下载安装包,一共6个deb文件。

下载地址https://download.docker.com/linux/ubuntu/dists/noble/pool/stable/amd64/

containerd.io_1.7.25-1_amd64.deb

docker-buildx-plugin_0.21.1-1~ubuntu.24.04~noble_amd64.deb

docker-ce-cli_28.0.1-1~ubuntu.24.04~noble_amd64.deb

docker-ce-rootless-extras_28.0.1-1~ubuntu.24.04~noble_amd64.deb

docker-ce_28.0.1-1~ubuntu.24.04~noble_amd64.deb

docker-compose-plugin_2.33.1-1~ubuntu.24.04~noble_amd64.deb

将下载的包文件上传到服务器,执行本地安装

dpkg -i ./*.deb

usermod -aG docker $USER

newgrp docker # 或重新登录终端使权限生效

  1. 配置GitLab持久化存储

3.1 创建数据目录

mkdir -p ~/gitlab/{config,logs,data}

  1. 编写Docker Compose文件

4.1 创建 docker-compose.yml

nano ~/gitlab/docker-compose.yml

4.2 输入以下内容

services:

gitlab:

image: gitlab/gitlab-ce:latest

container_name: gitlab

restart: always

hostname: 'gitlab.yourdomain.com' # 改为你的域名或IP

environment:

GITLAB_OMNIBUS_CONFIG: |

external_url 'http://gitlab.yourdomain.com' # 外部访问地址

gitlab_rails['time_zone'] = 'Asia/Shanghai' # 时区设置

邮箱配置(可选)

gitlab_rails['smtp_enable'] = true

gitlab_rails['smtp_address'] = "smtp.example.com"

ports:

  • "80:80"

  • "443:443"

  • "22:22"

volumes:

  • ./config:/etc/gitlab

  • ./logs:/var/log/gitlab

  • ./data:/var/opt/gitlab

shm_size: '256m' # 共享内存大小

  1. 启动GitLab容器

cd ~/gitlab

docker compose up -d

22端口冲突了,修改docker-compose.yml,将"22:22"改为"2222:22"

再次运行

docker compose up -d

成功

docker logs -f gitlab # 监控启动日志

  1. 防火墙配置(如启用UFW)

sudo ufw allow 80/tcp

sudo ufw allow 443/tcp

sudo ufw allow 2222/tcp

sudo ufw reload

  1. 访问GitLab

打开浏览器访问 http://your-server-ip

首次登录用户 root,密码存储在:/etc/gitlab/config/initial_root_password,24小时后将被清理,所以要立即修改密码。

进入gitlab后提示:"Check your sign-up restrictions",点击"Deactivate",禁止其他人注册账号

8.HTTPS配置

将SSL证书放入 ~/gitlab/config/ssl

修改 external_url 为 https://gitlab.yourdomain.com

在 GITLAB_OMNIBUS_CONFIG 添加:

nginx['ssl_certificate'] = "/etc/gitlab/ssl/fullchain.pem"

nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/privkey.pem"

  1. 常用命令

启动服务 docker compose up -d

停止服务 docker compose down

更新GitLab docker compose pull && docker compose up -d

备份数据 docker exec -t gitlab gitlab-backup create

  1. 故障排查

502错误:通常因资源不足,建议分配至少4GB内存。

启动缓慢:检查宿主机磁盘IO性能。

附:备份与恢复

备份

docker exec -t gitlab gitlab-backup create

恢复

docker exec -t gitlab gitlab-backup restore BACKUP=备份文件名

相关推荐
yuxb7318 分钟前
Docker学习笔记(二):镜像与容器管理
笔记·学习·docker
Delphi菜鸟2 小时前
docker 部署RustDesk服务
运维·docker·容器
Sweety丶╮7942 小时前
【Kubernetes】知识点总结5
云原生·容器·kubernetes
今晚务必早点睡2 小时前
从零到上线:Docker、Docker Compose 与 Runtime 安装部署全指南(含实战示例与应用场景)
运维·docker·容器
zyplanke4 小时前
Kubernetes(四):Service
云原生·容器·kubernetes·k8s
Android小码家6 小时前
Vscode + docker + qt 网络监听小工具
vscode·qt·docker
虚伪的空想家6 小时前
K8S删除命名空间卡住一直Terminating状态
云原生·容器·kubernetes·删除·卡顿·delete·命名空间
衍余未了8 小时前
k8s除了主server服务器可正常使用kubectl命令,其他节点不能使用原因,以及如何在其他k8s节点正常使用kubectl命令??
云原生·容器·kubernetes
Clownseven8 小时前
Mattermost教程:用Docker搭建自己的开源Slack替代品 (团队聊天)
docker·容器·开源
❀͜͡傀儡师8 小时前
Docker部署Drawnix开源白板工具
docker·容器·开源·drawnix