环境信息
mac OS: 13.1
docker desktop: 4.16.2 (95914)
Docker Compose version 2.6.1
环境准备
使用命令搜索镜像:docker search gitlib-ce
:
1 | docker search gitlib |
找到镜像后,拉取镜像:
yrzr/gitlab-ce-arm64v8
1 | docker pull yrzr/gitlab-ce-arm64v8 |
这个是
gitlab
的arm64
镜像
1 | > mkdir gitlab |
设置环境变量:
1 | > export GITLAB_HOME=$(pwd)/gitlab |
或使用.env
:
1 | GITLAB_HOME=${PWD} |
或直接使用.
替换$GITLAB_HOME
为 gitlab 创建 docker-compose 配置文件
1 | vim docker-compose.yml |
1 | version: '3.7' |
参数解析:
hostname
: 访问的域名env
: 这里面就是临时提权生效的- 这个就是可以给
gitlab
传入部分参数,让其构建过程读取你设置的值(gitlab.rb
)并且生效 - 官方说这个并不会写入
gitlab.rb
(就是gitlab
的配置文件),只是临时生效(容器生存期间)
- 这个就是可以给
对于Gitlab
配置,你可以配置容器内的,也可以配置映射的区域
前者可以用gitlab-ctl reconfigure
重新生效,后者需要重启容器
• 容器内: /etc/gitlab
• 映射: $GITLAB_HOME/config
*注意:这里的路径下面一定要加上/etc、/log、/opt,不然创建出来的gitlab文件会有问题
启动容器
1 | docker-compose up -d |
验证是否启动成功
1 | docker-compose ps |
部署,整个初始化的过程,我这边等了2-4分钟左右, 因为机器配置不是很高~~~~
修改配置
进入容器
1 | docker exec -it gitlab-ce /bin/bash |
修改 gitlab.rb
1 | vi /etc/gitlab/gitlab.rb |
gitlab.rb的配置实在是多,整个配置文件目前接近1800行;里面涵盖了日志,安全,nginx,数据库等等的所有配置,大多数配置都有默认值,所以很多东西看你的需要来开启,
在最下面加入以下代码
1 | // gitlab地址,端口默认为80端口 |
修改http和ssh配置
1 | vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml |
注意此处的 host
为线上服务器IP
,或者改为域名,如果没有则不需要修改
1 | ## GitLab settings |
修改成功后重启
1 | gitlab-ctl restart |
或者重载配置文件使其生效
1 | gitlab-ctl reconfigure |
退出容器
1 | exit |
使用 root 账户登录:
获取密码:
1 | docker exec -it gitlab-ce grep 'Password:' /etc/gitlab/initial_root_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 | gitlab-rails console -e production |
查询id为1的账号,1默认是超级管理员
1 | user = User.where(id:1).first |
修改密码 密码如果只有数字无法保存
1 | user.password='********' |
保存修改 如果返回true则表示保存成功
1 | user.save! |
退出容器
1 | exit |
中文设置
中文设置方法: 依次点击工具栏最右侧用户头 -> Settings -> Preferred language , 然后选择 “简体中文” 即可。
查看版本
查看Gitlab
版本,可以在https://your.domain.name/help
上查看GitLab
的版本。
关闭所有在运行的容器
执行命令
1 | docker-compose down |
引用
- How to install GitLab using Docker Compose?
- Docker折腾记: (3)Docker Compose构建Gitlab,从配置(https,邮箱验证)到基本可用
以上。