保姆级教程-Mac M1 docker搭建gitlab

2,197 阅读2分钟

一、搜索gitlab镜像

由于Mac M1芯片区别去Intel,所以在找镜像的时候需要勾选ARM 64,然后一般推荐的镜像就是gitlab-ce。 image.png

image.png

或者使用命令搜索镜像:docker search gitlib-ce

docker search gitlib-ce

image.png

不管用哪一种方法找到镜像后,我们需要把它给拉下来~

docker pull yrzr/gitlab-ce-arm64v8

image.png

二、启动容器

docker run \
  -itd  \
  --detach \
  --restart always \
  --name gitlab-ce \
  --privileged \
  --memory 4096M \
  --publish 9922:22 \
  --publish 9980:80 \
  --volume 在本地创建一个文件夹保存映射的文件/etc:/etc/gitlab:z \
  --volume 在本地创建一个文件夹保存映射的文件/log:/var/log/gitlab:z \
  --volume 在本地创建一个文件夹保存映射的文件/opt:/var/opt/gitlab:z \
  yrzr/gitlab-ce-arm64v8:latest

image.png

注意:这里的路径下面一定要加上/etc、/log、/opt,不然创建出来的gitlab文件会有问题

命令描述
-i以交互模式运行容器,通常与-t同时使用
-t给容器重新分配一个伪终端,通常与-i同时使用
-d后台运行容器并返回id
-itd-i,-t,-d可以写为-itd
-detach给容器重新分配一个伪终端,通常与-i同时使用
--restart always容器自动启动
--name gitlab-ce容器名字
--privileged让容器获取宿主机root权限
--memory限制容器使用的最大内存
--publish 9922:22开放端口,将容器的22端口映射到宿主机的9922端口
--publish 9980:80开放端口,将容器的80端口映射到宿主机的9980端口
--volume将容器etc/gitlab目录映射到宿主机的目录
yrzr/gitlab-ce-arm64v8:latest镜像名字,这里也可以用镜像ID

三、修改配置

// 进入容器
docker exec -it gitlab-ce /bin/bash

// 修改gitlab.rb 如图1
vi /etc/gitlab/gitlab.rb

// 在最下面加入以下代码
// gitlab地址,端口默认为80端口
external_url 'http://192.168.124.194'

// ssh主机ip
gitlab_rails['gitlab_ssh_host'] = '192.168.124.194'

// ssh连接端口
gitlab_rails['gitlab_shell_ssh_port'] = 9922

图1 image.png

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

注意此处的host为线上服务器IP,或者改为域名,如果没有则不需要修改

// 修改成功后重启
gitlab-ctl restart

// 退出容器
exit

图2 image.png

四、访问浏览器

访问:http://localhost:9980 或者 http://0.0.0.0:9980

image.png

image.png

到这一步就成功一大半了!

五、修改gitlab的root密码

// 进入容器
docker exec -it gitlab /bin/bask

// 进入控制台
gitlab-rails console -e production

// 查询id为1的账号,1默认是超级管理员
User.where(id:1).first

// 修改密码 密码如果只有数字无法保存
user.password='abc123456'

// 保存修改 如果返回true则表示保存成功
user.save!

// 退出容器
exit

image.png

然后就搞定啦!!!是不是超级简单,学不会你来打我~