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

相关推荐
TechMasterPlus26 分钟前
Linux U-Boot 与内核启动流程深度解析:从上电到 Shell 的完整之旅
linux·运维·服务器
大白菜和MySQL29 分钟前
Linux下dhcp服务搭建
linux·运维·服务器
SPC的存折41 分钟前
1、MySQL故障排查与运维案例
linux·运维·服务器·数据库·mysql
Run_Teenage42 分钟前
Linux:认识信号,理解信号的产生和处理
linux·运维·算法
CDN3601 小时前
高防服务器磁盘 / CPU 爆满?攻击引流与资源扩容实战
运维·服务器·网络协议
freewlt1 小时前
OpenClaw 工作流自动化实战:打造你的智能定时任务中心
运维·servlet·自动化
Amnesia0_01 小时前
理解Linux中的OS管理和进程属性
linux·运维·服务器
http阿拉丁神猫1 小时前
kubernetes知识点汇总43-47
云原生·容器·kubernetes
小夏子_riotous1 小时前
openstack的使用——7. 共享文件系统manila服务
linux·运维·服务器·系统架构·centos·openstack·运维开发
Omics Pro1 小时前
上海AI Lab+复旦大学:双轨协同实现自动化虚拟细胞建模
运维·人工智能·语言模型·自然语言处理·数据挖掘·数据分析·自动化