在Mac M1 中使用 docker 搭建本地 gitlab 服务

177 阅读3分钟

因为后边想自己搞一搞CI/CD等前端工程化啥的,所以先摸索了一下本地gitlab的搭建过程,以下是心路历程😁

一、下载镜像

  1. docker客户端下载 www.docker.com/products/do…

    根据自己使用的机器类型选择对应的安装包下载,并按照相应步骤安装(此处省略) image.png

  2. 镜像

    • gitlab分为gitlab-ce(社区版)、gitlab-ee(企业版,收费),个人使用gitlab-ce足矣
    • 由于我当前使用的Mac的处理器是M1,所以需要下载arm64/v8的镜像,否则使用默认下载的镜像会出现异常提示:WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested,所以此文中的镜像选择:yrzr/gitlab-ce-arm64v8
    • 在官方网站搜索对应镜像:https://hub.docker.com image.png image.png
    • 使用终端工具搜索对应镜像
    docker search yrzr/gitlab-ce-arm64v8
    

    image.png

    • 无论什么方式查找镜像,最终也需要拉取镜像,在终端中输入命令行:
    docker pull yrzr/gitlab-ce-arm64v8:latest
    

二、启动容器

docker run --detach \
--restart always \
--name gitlab-ce \
--privileged \
--memory 4096M \
--publish 9922:22 \
--publish 9980:80 \
-u root \
--env GITLAB_ROOT_PASSWORD="Abc123456789" \
--volume /Users/tom/gitlab-ce/etc:/etc/gitlab:z \
--volume /Users/tom/gitlab-ce/log:/var/log/gitlab:z \
--volume /Users/tom/gitlab-ce/opt:/var/opt/gitlab:z \
yrzr/gitlab-ce-arm64v8:latest

image.png 注意:容器映射到宿主机的目录的路径下一定要加上/etc、/log、/opt,不然创建出来的gitlab文件会出现问题

参数描述
--detach让Docker容器在后台运行,并返回容器ID
--restart always设置容器的重启策略为“总是重启”
--name gitlab-ce为容器指定一个名称,这里是gitlab-ce
--privileged给予容器额外的权限
--memory 4096M限制容器可以使用的内存为4096MB(4GB)
--publish 9922:229922:22表示将容器的22端口(SSH)映射到宿主机的9922端口
--publish 9980:809980:80表示将容器的80端口(HTTP)映射到宿主机的9980端口
-u root以root用户的身份运行容器
--env GITLAB_ROOT_PASSWORD设置环境变量GITLAB_ROOT_PASSWORD的值,这里设置为Abc123456789。这是GitLab root用户的初始密码,容器启动时会自动应用这个密码
--volume将容器中的目录映射到宿主机的目录

三、修改配置

  1. 配置ssh访问

    // 进入容器
    docker exec -it gitlab-ce /bin/bash
    // 修改gitlab.rb
    vi /etc/gitlab/gitlab.rb 
    

    在当前文件的底部添加如下:

    # gitlab地址,端口默认为80端口
    external_url 'http://10.1.1.23'
    # ssh主机ip
    gitlab_rails['gitlab_ssh_host'] = '10.1.1.23' 
    # ssh连接端口
    gitlab_rails['gitlab_shell_ssh_port'] = 9922
    

    image.png

    配置项描述
    external_url配置项用于指定 GitLab 实例的外部访问 URL。这个 URL 是用户通过浏览器访问 GitLab 实例时所使用的地址
    gitlab_rails['gitlab_ssh_host']配置项用于指定用于 SSH 访问的 GitLab 实例的主机名
    gitlab_rails['gitlab_ssh_port']配置项用于指定用于 SSH 访问的 GitLab 实例的端口
  2. 配置线上服务器主机配置(如果没有则不需要修改)

    // 修改http和ssh配置
    vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml 
    

    在当前文件的production配置处,修改host、port为服务器IP或域名及端口号 image.png

  3. 重启服务

    // 修改成功后重启 
    gitlab-ctl restart 
    // 退出容器 
    exit
    

四、浏览器访问

  1. 浏览器访问:http://localhost:9980http://10.1.1.23:9980
  2. 使用启动命令中的账户:root,密码:Abc123456789,既可以登录 image.png

至此,本地启动gitlab的简单流程就结束了,赶快去试试吧!