GitLab CE 在 macOS Docker 下通过 localhost 访问部署复盘

GitLab CE 在 macOS Docker 下通过 localhost 部署复盘

下面用一步步提纲方式,带你快速回顾从零到可通过 http://localhost 访问的完整流程。


1. 环境准备

  1. 安装 Docker Desktop for Mac(支持 Intel & Apple Silicon)。

  2. 在主目录创建持久化目录:

    bash 复制代码
    mkdir -p ~/gitlab/{config,data,logs}
    • /etc/gitlab 存配置
    • /var/opt/gitlab 存仓库 & 数据库
    • /var/log/gitlab 存日志

2. 拉取合适镜像

  • Intel (x86_64):

    bash 复制代码
    docker pull gitlab/gitlab-ce:latest
  • Apple Silicon (ARM64):

    bash 复制代码
    docker pull yrzr/gitlab-ce-arm64v8:latest

3. 启动 Docker 容器

核心:显式 -p HOST:CONTAINER 绑定,且通过环境变量注入 external_url

bash 复制代码
# 如果已跑过旧容器,先停掉并删掉它
docker stop gitlabce && docker rm gitlabce

# 启动新容器
docker run -d \
  --name gitlabce \
  --hostname gitlab.local \
  -p 80:80 \           # 宿主机 80 → 容器 80
  -p 443:443 \         # 宿主机 443 → 容器 443
  -p 2222:22 \         # 宿主机 2222 → 容器 22(SSH)
  -e GITLAB_OMNIBUS_CONFIG="external_url 'http://localhost'" \
  -v ~/gitlab/config:/etc/gitlab \
  -v ~/gitlab/data:/var/opt/gitlab \
  -v ~/gitlab/logs:/var/log/gitlab \
  --restart unless-stopped \
  gitlab/gitlab-ce:latest
  • GITLAB_OMNIBUS_CONFIG:自动写入 external_url 'http://localhost',首启动即生效
  • --hostname 会影响内部 external_url 默认值;也可改成 gitlab.local 并修改 /etc/hosts

4. 验证端口 & 访问

  1. 查看端口映射:

    bash 复制代码
    docker ps --format "table {{.Names}}\t{{.Ports}}"

    应显示 0.0.0.0:80->80/tcp 等映射信息。

  2. 本机测试:

    bash 复制代码
    curl -I http://localhost

    预期返回 HTTP/1.1 200 OK

  3. 第一次登录

    • 默认用户:root

    • 初始密码:

      bash 复制代码
      docker exec gitlabce grep 'Password:' /etc/gitlab/initial_root_password

5. 后续可选项

  • 修改配置

    bash 复制代码
    docker exec -it gitlabce bash
    vi /etc/gitlab/gitlab.rb    # 改 external_url、SSH 端口等
    gitlab-ctl reconfigure
    exit
  • 启用 HTTPS
    gitlab.crt/gitlab.key 放到 ~/gitlab/config/ssl,在 gitlab.rb 里配置 nginx['ssl_certificate']nginx['ssl_certificate_key'],然后重跑 reconfigure

  • 备份与恢复

    bash 复制代码
    # 备份
    docker exec gitlabce gitlab-backup create
    
    # 恢复(指定 BACKUP 文件名)
    docker exec -it gitlabce gitlab-backup restore BACKUP=TIMESTAMP
    docker exec gitlabce gitlab-ctl reconfigure

6. 常见冲突 & 解决

  • 若宿主机 80/443 被占用,删掉旧 -p 80:80 或改成 -p 8080:80,并同步更新 external_url 'http://localhost:8080'
  • 如需自定义域名,编辑 /etc/hosts,把 127.0.0.1 gitlab.local 加入,配置 external_url 'http://gitlab.local' 即可。

至此,你已在 macOS 上通过 Docker 成功跑通 GitLab CE 并可用 http://localhost 访问。

接下来可接入 Runner、LDAP、监控等,打造完整 DevOps 流水线!

相关推荐
吃饱了得干活18 分钟前
缓存与数据库一致性:从理论到实战
java·后端·面试
520拼好饭被践踏26 分钟前
JAVA+Agent学习day22
java·开发语言·后端·学习
whi30 分钟前
V 编译器 v3 ownership 模式:编译与使用指南
后端·编译器
swipe38 分钟前
05|(前端转后全栈)不手写一堆 SQL,后端怎么操作数据库?MyBatis-Plus 入门
前端·后端·全栈
霸道流氓气质39 分钟前
SpringBoot中使用JasperReports 报表引擎 — 介绍、原理与使用实践
java·spring boot·后端
swipe43 分钟前
04|(前端转后全栈)前端状态为什么不够用?从页面数据到 MySQL 持久化
前端·后端·全栈
苏三说技术1 小时前
为什么越来越多人使用WebFlux?
后端
武子康1 小时前
Ask/Allow 不是安全边界:企业 Coding Agent 必须建立四层治理(Policy / Scoped Credential / Sandbox / Provenance)
人工智能·后端·agent
Wang's Blog1 小时前
Go-Zero项目开发17: IM私聊功能实现与消息存储设计
开发语言·后端·golang