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

相关推荐
邪修king8 分钟前
Re: Linux系统篇(十八):进程篇(七): 进程深度解析:从 fork 创建到退出的完整旅程(附写时拷贝原理 + 代码实战)
java·linux·运维
程序员老赵1 小时前
Docker 部署 go2rtc:轻松搭建摄像头多协议流媒体平台
前端·docker·直播
湫默1 小时前
运维八股文
运维
Discipline~Hai1 小时前
Linux网络编程03-HTTP协议
linux·运维·服务器·网络·网络协议·http·linux网络编程
CV-杨帆1 小时前
在自己的服务器上搭建VLLM 以Qwen3.5-0.8B与Qwen3.5-4B为模型基础
运维·服务器·vllm
程序猿乐锅2 小时前
【计算机组成原理 | 第八章】I/O系统
运维·服务器·网络
青瓦梦滋2 小时前
Linux高级IO
linux·运维·服务器·网络·网络协议·tcp/ip
꯭自꯭闭꯭2 小时前
达梦(DM8)安装测试
linux·运维·服务器·数据库
牢姐与蒯2 小时前
Linux进程(七).进程控制
linux·运维·服务器·ubuntu
努力努力再努力wz2 小时前
【Docker入门系列】:从架构演进到容器化:一文建立 Docker、虚拟化与 Namespace 的底层心智模型
运维·开发语言·数据结构·c++·docker·容器·架构