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

相关推荐
TZOF1 分钟前
TypeScript的新类型(五):tuple元组
前端·后端·typescript
TZOF1 分钟前
TypeScript的object大小写的区别
前端·后端·typescript
TZOF7 分钟前
TypeScript的对象如何进行类型声明
前端·后端·typescript
用户59659061813412 分钟前
Moq 是mock库
后端
用户59659061813413 分钟前
AutoMappe包及用法
后端
Yefimov16 分钟前
DPDK:从网络协议栈的角度来观察微内核
后端·网络协议
用户685453759776920 分钟前
# 🚀 Java高级面试题:Spring框架原理
后端
自学AI的鲨鱼儿28 分钟前
ubuntu22.04安装gvm管理go
开发语言·后端·golang
这里有鱼汤32 分钟前
从DeepSeek到Kronos,3个原因告诉你:Kronos如何颠覆传统量化预测
后端·python·aigc
brzhang1 小时前
当我第一次看到 snapDOM,我想:这玩意儿终于能解决网页「截图」这破事了?
前端·后端·架构