docker 部署gitlib

Windows 上使用 Docker 部署 GitLab 是完全可行的,推荐使用 Docker Desktop for Windows 来运行 GitLab 容器。以下是详细的本地部署步骤。


✅ 前提条件

确保你已安装以下工具:

  1. Windows 10 或 Windows 11(64位)
  2. Docker Desktop for Windows
    • 启用 WSL2(Windows Subsystem for Linux),Docker Desktop 会自动处理
  3. 至少 4GB 可用内存(建议 8GB+,GitLab 较吃资源)

💡 提示:GitLab 社区版(CE)启动后可能占用 2~3GB 内存,请确保系统资源充足。


🛠️ 步骤一:安装并启动 Docker Desktop

  1. 下载并安装 Docker Desktop for Windows
  2. 安装过程中勾选:
    • Enable WSL2 Features
    • Install required Windows components
  3. 安装完成后重启,打开 Docker Desktop
  4. 确保状态显示 "Docker Desktop is running"

📁 步骤二:创建 GitLab 目录结构

选择一个位置,比如 D:\gitlab,创建以下目录:

bash 复制代码
D:\gitlab
├── config
├── data
└── logs

你可以手动创建,或在 PowerShell 中执行:

powershell 复制代码
mkdir D:\gitlab\config
mkdir D:\gitlab\data
mkdir D:\gitlab\logs

🐳 步骤三:编写 docker-compose.yml

D:\gitlab 下新建文件 docker-compose.yml,内容如下:

yaml 复制代码
version: '3.6'
services:
  gitlab:
    image: gitlab/gitlab-ce:latest
    container_name: gitlab
    restart: always
    hostname: localhost
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://localhost:8989'
        nginx['listen_port'] = 8989
        nginx['listen_https'] = false
        gitlab_rails['time_zone'] = 'Asia/Shanghai'
        # 如果需要邮件通知可配置 SMTP(可选)
    ports:
      - "8989:8989"
      - "2222:22"
    volumes:
      - D:/gitlab/config:/etc/gitlab
      - D:/gitlab/data:/var/opt/gitlab
      - D:/gitlab/logs:/var/log/gitlab
    shm_size: '256m'

⚠️ 注意:

  • 使用 D:/gitlab 而不是 \(Docker 兼容 POSIX 路径)
  • external_url 设置为 http://localhost:8989,这样可以从本机浏览器访问
  • SSH 映射到宿主机的 2222 端口,避免与 OpenSSH 冲突

▶️ 步骤四:启动 GitLab

方法一:使用 PowerShell + Docker Compose

进入目录并启动:

powershell 复制代码
cd D:\gitlab
docker-compose up -d

如果提示 'docker-compose' 不是命令,请确认 Docker Desktop 已安装完整组件。

或者直接使用:docker compose up -d(新版 Docker 使用无横杠命令)


打开网址设置密码

http://localhost:8989

1. 进入 GitLab 容器的 Rails 控制台

docker exec -it gitlab gitlab-rails console

2. 在控制台中执行(替换 'new_password' 为你想设的新密码)

user = User.where(id: 1).first
user.password = 'new_password'
user.password_confirmation = 'new_password'
user.save!

3. 退出控制台

exit

相关推荐
大树881 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠1 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质1 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工1 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
Alsn861 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
酣大智1 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_1 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉1 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造
AC赳赳老秦1 天前
用 OpenClaw 搭建服务器故障应急响应系统,自动处理 80% 常见运维故障
android·运维·服务器·python·rxjava·deepseek·openclaw
2601_961875241 天前
决战申论100题2026|最新|范文
linux·容器·centos·debian·ssh·fabric·vagrant