一、搜索gitlab镜像
由于Mac M1芯片区别去Intel,所以在找镜像的时候需要勾选ARM 64,然后一般推荐的镜像就是gitlab-ce。
或者使用命令搜索镜像:docker search gitlib-ce
docker search gitlib-ce
不管用哪一种方法找到镜像后,我们需要把它给拉下来~
docker pull yrzr/gitlab-ce-arm64v8
二、启动容器
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
注意:这里的路径下面一定要加上/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
// 修改http和ssh配置,如图2
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
注意此处的host为线上服务器IP,或者改为域名,如果没有则不需要修改
// 修改成功后重启
gitlab-ctl restart
// 退出容器
exit
图2
四、访问浏览器
访问:http://localhost:9980 或者 http://0.0.0.0:9980
到这一步就成功一大半了!
五、修改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
然后就搞定啦!!!是不是超级简单,学不会你来打我~