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

相关推荐
AR-26710-2 小时前
Linux Day32——实操五类资源告急排查
linux·运维
skywalk81633 小时前
hive 常驻集群:像 OSPF 一样在线,像 git 一样可信
运维·人工智能·hive
景煜拾年4 小时前
InnoAI SQL 助手
运维·数据库·笔记·sql
无人生还别怕5 小时前
如何搭建docker仓库(轻量级)registry
linux·运维·docker·云原生·容器·registry·openanolisos
分布式存储与RustFS5 小时前
Hudi 表想摆脱 HDFS 绑定?用 Spark + Hudi 直接写进 RustFS
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
zhengfei6116 小时前
CVE-2026-98432:Linux 内核 TCP 释放后重用漏洞,CVSS 9.8 但补丁覆盖极不均衡
linux·运维·tcp/ip
逐流人6 小时前
DevOps 入门实战(一):从 CI/CD 概念到 Jenkins 自动构建部署
运维·云原生·云计算·jenkins·devops
xyzzklk6 小时前
变相解决华为Mate 8锁屏后无法建立入站网络连接
linux·运维·服务器·网络·华为·go·安卓
叼烟扛炮8 小时前
Linux 学习笔记(五十九):epoll 的生死抉择——LT 与 ET 模式
linux·运维·服务器·网络·笔记·学习·php
飞飞传输15 小时前
飞驰云联文件交换建设方法论:从单点传输到持续治理
大数据·运维·安全