前置条件
- 一台云服务器
- 云服务器上已安装Docker
- 了解Docker基础
使用Docker安装GitLab
-
设置环境变量$GITLAB_HOME
- Linux:
export GITLAB_HOME=/srv/gitlab
- macOS:
export GITLAB_HOME=$HOME/gitlab
- Linux:
-
创建docker-compose.yml文件
- 修改http端口需要同步修改external_url
- 修改ssh端口需要同步修改gitlab_rails[‘gitlab_shell_ssh_port’]
- volumes:容器数据的持久化存储,强烈推荐。除非你希望重启容器就将Gitlab重置
version: '3.6'
services:
web:
image: 'registry.gitlab.cn/omnibus/gitlab-jh:latest'
restart: always
hostname: '0.0.0.0' # 你的云服务器ip
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://0.0.0.0:8989' # 你的云服务器地址
gitlab_rails['gitlab_shell_ssh_port'] = 2222
ports:
- '8989:8989' # 这里两个端口号都需要改
- '443:443'
- '2222:22' # 修改ssh端口号,需要同步修改gitlab_shell_ssh_port
volumes:
- '$GITLAB_HOME/config:/etc/gitlab'
- '$GITLAB_HOME/logs:/var/log/gitlab'
- '$GITLAB_HOME/data:/var/opt/gitlab'
shm_size: '256m'
- 使用
docker compose up -d
启动
swap分区
个人云服务器为2核4GB,输入网址后显示502。查看CPU使用率已经超过90%。
只能重启实例,参考网上进行SWAP分区
# 1、查看swap分区情况
cat /proc/swaps
# 2、创建 swap 分区
dd if=/dev/zero of=/swap bs=512 count=8388608
# 3、通过mkswap命令将上面新建出的文件做成swap分区
mkswap /swap
# 4、查看内核参数vm.swappiness中的数值是否为0,如果为0则根据实际需要调整成60
cat /proc/sys/vm/swappiness
sysctl -w vm.swappiness=60
# 5、启用 swap 分区
swapon /swap
# 6、再次查看swap分区是否启动
cat /proc/swaps
# free -h 查看内存使用情况
- swap分区:当物理内存使用完时,系统将一部分访问不频繁的内存放置到swap分区,本质就是磁盘上。在一定程度上防止物理内存用完系统崩溃的情况
- 个人理解swap分区很适合云服务器,一般内存比较小(土豪另说),但是需要跑的程序却比较多。它的缺点是被放入磁盘中的内存,读写速度会慢很多。
至此,GitLab的安装就应该成功了。访问对应的ip或者域名。可以设置语言。下一步就是管理员登录了
管理员登录
系统内置root作为管理员用户名,首次登录有以下两种方式
方案一:系统自动生成的密码
自动生成的密码只有24小时的保留期限
- 进入容器内部:
docker exec -it be28b6c5223f /bin/bash
- 查看初始密码:
cat /etc/gitlab/initial_root_password
以该方法登录后需要修改管理员密码
方案二:重置root密码
如果使用方案一登录无效,则需要使用方案二重置root密码后登录。参考官方文档
- 进入容器内部:
docker exec -it be28b6c5223f /bin/bash
- 进入rails控制台:
gitlab-rails console
- 查找到root用户:
user = User.find_by_username "root"
- 重置密码:
user.password="自己设置一个密码"
- 保存:
user.save!
部署和使用公共密钥
公共密钥可以在所有项目中使用,添加读写权限。部署后可以为git仓库的使用或者配合其他平台做自动化流程提供便利。整个流程参考官网部署密钥
- 管理员登陆后点击“管理员”,进入管理中心
- 选择“部署密钥”,点击“新建部署密钥”
- 填入标题和ssh公钥,ssh密钥的生成参考官网这里
- 进入某个具体的项目(如没有则新建一个),点击“设置” => “仓库”
- 选择“部署密钥”展开 => 选择“公开访问的部署密钥” => 启用对应的公共密钥
- 选择“已启用的部署密钥” => 选择对应的公共密钥,点击编辑 => 打钩“授予此密钥写入权限” 保存更改
原文链接:https://juejin.cn/post/7242007082920312888 作者:萌鱼