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

相关推荐
虎头金猫5 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
分布式存储与RustFS5 天前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
AI职业加油站5 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
此冬歌咏5 天前
K8s 节点故障实战:优雅驱逐 31 秒,硬故障 331 秒,以及那个永远 Pending 的 Pod
运维·k8s
玉&心5 天前
通过Arthas在线诊断K8S中的内存及JVM等使用情况
docker·k8s·arthas
xing-xing5 天前
Docker容器中Nginx站点根目录网页配置访问
nginx·docker
-梅5 天前
linux(8) 软硬链接
linux·运维·服务器
赵文宇(温玉)5 天前
CoreDNS的hosts插件的缺行配置导致k8s集群异常
容器·kubernetes·rancher
guo_wen_qiang5 天前
上传本地镜像到harbor中
docker·容器·持续部署
张洛闻Eren5 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github