参考
[基于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: alwayscontainer_name: gitlab-cedepends_on:- postgresenvironment: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'] = 9922postgresql['enable'] = falsegitlab_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:- gitlabpostgres:image: postgrescontainer_name: postgreshostname: 'postgresql'restart: alwaysports:- 25432:5432volumes:- $GITLAB_HOME/db_data:/var/lib/postgresql/dataenvironment:POSTGRES_USER: gitlabPOSTGRES_PASSWORD: gitlabPOSTGRES_DB: gitlabhq_productionnetworks:- gitlabnetworks: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
// 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
修改http和ssh配置
1
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
注意此处的 host
为线上服务器IP
,或者改为域名,如果没有则不需要修改
1
2
3
4
5
6
## GitLab settingsgitlab:## Web server settings (note: host is the FQDN, do not include http://)host: 192.168.124.194port: 9980https: 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) FOSSGitLab Shell: 14.17.0PostgreSQL: 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
的版本。
关闭所有在运行的容器
执行命令
引用
How to install GitLab using Docker Compose?
Docker折腾记: (3)Docker Compose构建Gitlab,从配置(https,邮箱验证)到基本可用
以上。
原文作者:Saki Shum
原文链接: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/
发表日期:四月 11日 2023, 2:17:09 下午
更新日期:四月 11日 2023, 2:18:30 下午
版权声明:本文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可