当前位置: 首页 > news >正文

从零开始部署 GitLab CE 18.4.2:Docker Compose 新手教程

🛠️ 本教程将带你一步步部署 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(用于与其他服务互联)

创建网络命令:

docker network create docker_net

📁 二、目录结构初始化

我们将 GitLab 的配置、日志和数据分别挂载到本地目录,便于备份、迁移和版本控制。

📂 创建项目目录

mkdir -p /home/dk_project/dk_app/gitlab/{config,logs,data}

📄 准备配置文件

# 如果你已有 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

内容如下:

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

内容如下:

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: 16384Mrestart: alwayshostname: ${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:rohealthcheck:test: ["CMD", "/opt/gitlab/bin/gitlab-healthcheck", "--fail"]interval: 60stimeout: 10sretries: 3start_period: 180ssysctls:net.core.somaxconn: 1024net.ipv4.tcp_max_syn_backlog: 2048ulimits:nofile:soft: 65536hard: 65536nproc:soft: 65536hard: 65536labels:createdBy: "docker_apps"app: "gitlab"version: "${VERSION}"networks:- docker_netnetworks:docker_net:external: true

🚀 五、启动 GitLab 服务

进入项目目录并启动服务:

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,也可以通过以下命令查看:

docker exec -it gitlab-server cat /etc/gitlab/initial_root_password

🔐 七、后续建议

  • ✅ 配置 HTTPS:建议使用 Nginx 反向代理或 Let’s Encrypt
  • ✅ 设置 SMTP:确保通知邮件可正常发送
  • ✅ 定期备份:使用 gitlab-backup 工具自动化备份
  • ✅ 资源监控:结合 docker stats 或 Prometheus 监控容器运行状态
http://www.dtcms.com/a/485844.html

相关文章:

  • 高并发内存池日志
  • 使用PyTorch实现自定义损失函数以FocalLoss为例的详细教程
  • 《彻底理解C语言指针全攻略(4)--数组与指针的关系专题(下)》
  • app模板网站网站的源代码有什么用
  • Vue3的Pinia状态管理库【8】
  • 网站建设后台做网站难
  • 禅城区响应式网站怎么做企业网站推广
  • K8S(九)—— Kubernetes持久化存储深度解析:从Volume到PV/PVC与动态存储
  • 【课堂笔记】概率论-1
  • Java 大视界 -- Java 大数据在智能金融区块链跨境支付与结算中的应用
  • 面试_项目问题_RPC调用异常
  • 金融分析师核心能力构建:从数据解读到战略洞察
  • 【八股笔记】SSM
  • Selenium WebDriver自动化测试(框架篇)--数据驱动测试
  • WUJIE VS QIANKUN 微前端框架选型(一)
  • 中国万网域名官网官网优化包括什么内容
  • MySQL相关知识总结
  • 实战GPT-5:用“XML三明治”和“完美循环”重构你的提示
  • 德阳网站网站建设网页设计课程心得体会500字
  • 鸿蒙Harmony实战开发教学Day1-IDE新版本安装篇
  • K8s学习笔记(十九) K8s资源限制
  • claude-sonnet-4-5,IDE中集成,白嫖Claude Code代理,AnyRouter公益站
  • 【SSRF漏洞】Server-Side Request Forgery 服务器端请求伪造
  • 【国内电子数据取证厂商龙信科技】手机在纯净模式下如何安装客户端软件
  • Flink 算子性能优化深度解析
  • Flink受管状态自定义序列化的可演进设计与未来趋势
  • 迷你加湿器方案开发,加湿器/香薰机MCU控制方案开发设计
  • 网站模版参考中国建筑装饰网饶明富
  • ESP32的系统存储
  • HTML应用指南:利用GET请求获取全国领克经销商门店位置信息