🛠️ 本教程将带你一步步部署 GitLab Community Edition 18.4.2,使用 Docker Compose 构建一个资源受控、配置可维护、适合团队协作的 Git 仓库平台。适合 DevOps 初学者、独立开发者或小型团队。
📦 一、准备工作
✅ 系统要求
- 操作系统:Linux(推荐 Ubuntu 20.04+ 或 CentOS 7+)
- 已安装 Docker 和 Docker Compose
- 主机 IP:192.168.0.11(可根据实际情况修改)
- 已创建 Docker 网络
docker_net
(用于与其他服务互联)
创建网络命令:
bash
docker network create docker_net
📁 二、目录结构初始化
我们将 GitLab 的配置、日志和数据分别挂载到本地目录,便于备份、迁移和版本控制。
📂 创建项目目录
bash
mkdir -p /home/dk_project/dk_app/gitlab/{config,logs,data}
📄 准备配置文件
bash
# 如果你已有 gitlab.rb,可复制进去
cp /etc/gitlab/gitlab.rb /home/dk_project/dk_app/gitlab/config/
# 如果没有,可先创建一个空文件,后续 GitLab 会自动生成
touch /home/dk_project/dk_app/gitlab/config/gitlab.rb
📄 三、创建 .env 文件
.env
文件用于集中管理变量,方便修改和复用。
路径:/home/dk_project/dk_app/gitlab/.env
内容如下:
env
VERSION=18.4.2-ce.0
CONTAINER_NAME=gitlab-server
HOST_IP=0.0.0.0
WEB_HTTP_PORT=80
WEB_HTTPS_PORT=443
WEB_SSH_PORT=22
DOMAIN_HOST=192.168.0.11
CPUS=12
MEMORY_LIMIT=24576MB
APP_PATH=/home/dk_project/dk_app/gitlab
🧩 四、创建 docker-compose.yml 文件
路径:/home/dk_project/dk_app/gitlab/docker-compose.yml
内容如下:
yaml
version: "3.8"
services:
gitlab:
image: gitlab/gitlab-ce:${VERSION}
container_name: ${CONTAINER_NAME}
deploy:
resources:
limits:
cpus: ${CPUS}
memory: ${MEMORY_LIMIT}
reservations:
cpus: "8"
memory: 16384M
restart: always
hostname: ${DOMAIN_HOST}
shm_size: "2048m"
ports:
- "${HOST_IP}:${WEB_HTTP_PORT}:80"
- "${HOST_IP}:${WEB_HTTPS_PORT}:443"
- "${HOST_IP}:${WEB_SSH_PORT}:22"
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://${DOMAIN_HOST}'
volumes:
- ${APP_PATH}/config:/etc/gitlab
- ${APP_PATH}/logs:/var/log/gitlab
- ${APP_PATH}/data:/var/opt/gitlab
- ${APP_PATH}/config/gitlab.rb:/etc/gitlab/gitlab.rb:ro
healthcheck:
test: ["CMD", "/opt/gitlab/bin/gitlab-healthcheck", "--fail"]
interval: 60s
timeout: 10s
retries: 3
start_period: 180s
sysctls:
net.core.somaxconn: 1024
net.ipv4.tcp_max_syn_backlog: 2048
ulimits:
nofile:
soft: 65536
hard: 65536
nproc:
soft: 65536
hard: 65536
labels:
createdBy: "docker_apps"
app: "gitlab"
version: "${VERSION}"
networks:
- docker_net
networks:
docker_net:
external: true
🚀 五、启动 GitLab 服务
进入项目目录并启动服务:
bash
cd /home/dk_project/dk_app/gitlab
docker compose --env-file .env up -d
首次启动可能需要几分钟,请耐心等待。
🌐 六、访问与初始化
浏览器访问:
http://192.168.0.11
首次登录会提示设置管理员密码,默认用户名为 root
。
GitLab 会将密码写入一个文件 /etc/gitlab/initial_root_password,也可以通过以下命令查看:
bash
docker exec -it gitlab-server cat /etc/gitlab/initial_root_password
🔐 七、后续建议
- ✅ 配置 HTTPS:建议使用 Nginx 反向代理或 Let's Encrypt
- ✅ 设置 SMTP:确保通知邮件可正常发送
- ✅ 定期备份:使用
gitlab-backup
工具自动化备份 - ✅ 资源监控:结合
docker stats
或 Prometheus 监控容器运行状态