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 流水线!

相关推荐
error_cn几秒前
finger命令输出格式解析
后端
Victor3561 分钟前
MySQL(132)如何调整MySQL内存使用?
后端
武子康3 分钟前
大数据-38 Redis 分布式缓存 详细介绍 缓存、读写、旁路、穿透模式
大数据·redis·后端
TeamDev7 分钟前
从 JavaFX WebView 迁移至 JxBrowser
java·后端·webview
麦兜*7 分钟前
【SpringBoot 】Spring Boot OAuth2 六大安全隐患深度分析报告,包含渗透测试复现、漏洞原理、风险等级及完整修复方案
java·jvm·spring boot·后端·spring·系统架构
寻月隐君9 分钟前
Rust 错误处理终极指南:从 panic! 到 Result 的优雅之道
后端·rust·github
AI转型之路14 分钟前
Dify 实现长文档自定义切片:高效处理大规模文档的智能解决方案
后端
南雨北斗1 小时前
VSCODE进行代码格式化的方法
后端
深栈解码1 小时前
第一章:认识JVM:跨平台的引擎与生态基石
java·后端
fortify1 小时前
Git:从0掌握Git的使用,满足日常开发需求
后端