参考
[基于Docker在M芯片的Mac OS X系统中的部署和设置GitLab · Saki's 研究记录](https://sakishum.com/2023/04/11/%E5%9F%BA%E4%BA%8EDocker%E5%9C%A8M%E8%8A%AF%E7%89%87%E7%9A%84Mac-OS-X%E7%B3%BB%E7%BB%9F%E4%B8%AD%E7%9A%84%E9%83%A8%E7%BD%B2%E5%92%8C%E8%AE%BE%E7%BD%AEGitLab/#/%E7%8E%AF%E5%A2%83%E4%BF%A1%E6%81%AF)
docker 配置:
[搭建gitlab私有仓库 - sowler - 博客园](https://www.cnblogs.com/sowler/p/18652367)
详情:
环境信息
mac OS: 13.1
docker desktop: 4.16.2 (95914)
Docker Compose version 2.6.1
环境准备
使用命令搜索镜像:docker search gitlib-ce
:
1
2
3
4
|
docker search gitlib
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
yhfudev/docker-gitlab docker gitlib for arch linux 3 [OK]
...
|
找到镜像后,拉取镜像:
yrzr/gitlab-ce-arm64v8
1
|
docker pull yrzr/gitlab-ce-arm64v8
|
这个是gitlab
的arm64
镜像
设置环境变量:
1
2
3
|
> export GITLAB_HOME=$(pwd)/gitlab
> echo $GITLAB_HOME
/Users/shenshijie/Data/app/gitlab
|
或使用.env
:
或直接使用.
替换$GITLAB_HOME
为 gitlab 创建 docker-compose 配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
version: '3.7'
services:
web:
image: 'yrzr/gitlab-ce-arm64v8:latest'
hostname: 'localhost'
restart: always
container_name: gitlab-ce
depends_on:
- postgres
environment:
TZ: 'Asia/Shanghai'
#GITLAB_ROOT_PASSWORD: ''
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://localhost'
gitlab_rails['time_zone'] = 'Asia/Shanghai'
gitlab_rails['gitlab_ssh_host'] = 'localhost'
gitlab_rails['gitlab_shell_ssh_port'] = 9922
postgresql['enable'] = false
gitlab_rails['db_username'] = "gitlab"
gitlab_rails['db_password'] = "gitlab"
gitlab_rails['db_host'] = "postgresql"
gitlab_rails['db_database'] = "gitlabhq_production"
gitlab_rails['db_adapter'] = 'postgresql'
gitlab_rails['db_encoding'] = 'utf8'
ports:
- '9980:80'
- '9922:22'
- '8443:443'
volumes:
- '$GITLAB_HOME/config:/etc/gitlab'
- '$GITLAB_HOME/logs:/var/log/gitlab'
- '$GITLAB_HOME/data:/var/opt/gitlab'
networks:
- gitlab
postgres:
image: postgres
container_name: postgres
hostname: 'postgresql'
restart: always
ports:
- 25432:5432
volumes:
- $GITLAB_HOME/db_data:/var/lib/postgresql/data
environment:
POSTGRES_USER: gitlab
POSTGRES_PASSWORD: gitlab
POSTGRES_DB: gitlabhq_production
networks:
- gitlab
networks:
gitlab:
name: gitlab-network
|
参数解析:
hostname
: 访问的域名
env
: 这里面就是临时提权生效的
- 这个就是可以给
gitlab
传入部分参数,让其构建过程读取你设置的值(gitlab.rb
)并且生效
- 官方说这个并不会写入
gitlab.rb
(就是gitlab
的配置文件),只是临时生效(容器生存期间)
对于Gitlab
配置,你可以配置容器内的,也可以配置映射的区域
前者可以用gitlab-ctl reconfigure
重新生效,后者需要重启容器
• 容器内: /etc/gitlab
• 映射: $GITLAB_HOME/config
*注意:这里的路径下面一定要加上/etc、/log、/opt,不然创建出来的gitlab文件会有问题
启动容器
验证是否启动成功
1
2
3
4
5
|
docker-compose ps
NAME COMMAND SERVICE STATUS PORTS
gitlab-ce "/assets/wrapper" gitlab running (healthy) 0.0.0.0:9922->22/tcp, 0.0.0.0:9980->80/tcp, 0.0.0.0:8443->443/tcp
gitlab-runner-1 "/usr/bin/dumb-init …" runner running
postgres "docker-entrypoint.s…" postgres running 0.0.0.0:25432->5432/tcp
|
部署,整个初始化的过程,我这边等了2-4分钟左右, 因为机器配置不是很高~~~~
修改配置
进入容器
1
|
docker exec -it gitlab-ce /bin/bash
|
修改 gitlab.rb
1
|
vi /etc/gitlab/gitlab.rb
|
gitlab.rb的配置实在是多,整个配置文件目前接近1800行;里面涵盖了日志,安全,nginx,数据库等等的所有配置,大多数配置都有默认值,所以很多东西看你的需要来开启,
在最下面加入以下代码
1
2
3
4
5
6
|
external_url 'http://192.168.124.194'
gitlab_rails['gitlab_ssh_host'] = '192.168.124.194'
gitlab_rails['gitlab_shell_ssh_port'] = 9922
|
修改http和ssh配置
1
|
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
|
注意此处的 host
为线上服务器IP
,或者改为域名,如果没有则不需要修改
1
2
3
4
5
6
|
gitlab:
host: 192.168.124.194
port: 9980
https: false
|
修改成功后重启
或者重载配置文件使其生效
退出容器
使用 root 账户登录:
获取密码:
1
2
|
docker exec -it gitlab-ce grep 'Password:' /etc/gitlab/initial_root_password
Password: ********************************************
|
访问:http://localhost:9980 或者 http://0.0.0.0:9980
到这一步就成功一大半了!
登录:
通过IP
访问或配置hosts
后通过域名访问,获取root
初始密码,24
小时后失效,需及时修改密码
修改gitlab的root密码
进入容器
1
|
docker exec -it gitlab-ce /bin/bash
|
进入gitlab
控制台
1
2
3
4
5
6
7
|
gitlab-rails console -e production
--------------------------------------------------------------------------------
Ruby: ruby 2.7.7p221 (2022-11-24 revision 168ec2b1e5) [aarch64-linux]
GitLab: 15.9.2 (d5a415f1e66) FOSS
GitLab Shell: 14.17.0
PostgreSQL: 13.8
------------------------------------------------------------[ booted in 21.18s ]
|
查询id为1的账号,1默认是超级管理员
1
2
|
user = User.where(id:1).first
=> #<User id:1 @root>
|
修改密码 密码如果只有数字无法保存
1
2
|
user.password='********'
=> "********"
|
保存修改 如果返回true则表示保存成功
退出容器
中文设置
中文设置方法: 依次点击工具栏最右侧用户头 -> Settings -> Preferred language , 然后选择 “简体中文” 即可。
查看版本
查看Gitlab
版本,可以在https://your.domain.name/help
上查看GitLab
的版本。

关闭所有在运行的容器
执行命令
引用
以上。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2022-03-03 数据分析新手小白入门学习指南,这五大知识清单值得收藏