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

相关推荐
墨香幽梦客42 分钟前
API集成技术规范:RESTful与GraphQL在企业系统对接中的应用对比
后端·restful·graphql
刀法如飞2 小时前
AI编程时代,为什么35岁以上程序员会更吃香?
人工智能·后端·ai编程
小码哥_常2 小时前
Spring Boot 遇上 HMAC-SHA256,API 安全大升级!
后端
小码哥_常2 小时前
10分钟极速掌握!SpringBoot+Vue3整合SSE实现实时消息推送
后端
大黄说说3 小时前
深入 Go 语言 GMP 调度模型:高并发的秘密武器
后端
云原生指北4 小时前
Omnipub E2E 测试文章 - 自动化验证
后端
IT_陈寒4 小时前
SpringBoot自动配置揭秘:5个让开发效率翻倍的隐藏技巧
前端·人工智能·后端
添尹5 小时前
Go语言基础之数组
后端·golang
luom01026 小时前
SpringBoot - Cookie & Session 用户登录及登录状态保持功能实现
java·spring boot·后端
黄俊懿6 小时前
【架构师从入门到进阶】第二章:系统衡量指标——第一节:伸缩性、扩展性、安全性
分布式·后端·中间件·架构·系统架构·架构设计