# gitlab **Repository Path**: sunrisenan/gitlab ## Basic Information - **Project Name**: gitlab - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-12-18 - **Last Updated**: 2024-06-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: gitlab代码库 ## README # 部署 ```shell [root@k8s-gitlab ~]# sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose [root@k8s-gitlab ~]# chmod +x /usr/local/bin/docker-compose [root@k8s-gitlab ~]# mkdir -p /server/gitlab [root@k8s-gitlab ~]# cd /server/gitlab [root@k8s-gitlab gitlab]# git clone https://gitee.com/sunrisenan/gitlab.git [root@k8s-gitlab gitlab]# ll total 4 -rw-r--r-- 1 root root 744 Dec 16 19:15 docker-compose.yml [root@k8s-gitlab gitlab]# mkdir /data/gitlab [root@k8s-gitlab gitlab]# docker-compose up -d ``` - 查看默认密码 ```shell [root@k8s-gitlab ~# docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password Password: +48cB+ue5fWZUggElTjsFvL//YLCmkqCt+dZ6XGyVio= ``` # 邮箱配置 ## 腾讯邮箱 非TLS ```shell gitlab_rails['time_zone'] = 'Asia/Shanghai' gitlab_rails['smtp_enable'] = true gitlab_rails['gitlab_email_from'] = '发件人QQ邮箱' gitlab_rails['smtp_address'] = "smtp.qq.com" gitlab_rails['smtp_port'] = 25 #或者465 加密 gitlab_rails['smtp_user_name'] = "发件人QQ邮箱" gitlab_rails['smtp_password'] = "QQ邮箱smtp授权码" gitlab_rails['smtp_domain'] = "qq.com" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_tls'] = false ``` TLS ```shell gitlab_rails['gitlab_email_enabled'] = true # 开启邮件服务 gitlab_rails['gitlab_email_from'] = "121***3303@qq.com" # 发件邮箱 gitlab_rails['gitlab_email_display_name'] = 'M-Gitlab' # 发件人显示名称 gitlab_rails['smtp_enable'] = true # 使用smtp协议 gitlab_rails['smtp_address'] = "smtp.qq.com" # smtp地址 gitlab_rails['smtp_port'] = 465 # smtp端口 gitlab_rails['smtp_user_name'] = "121***3303@qq.com" # 发件人邮箱账户 gitlab_rails['smtp_password'] = "***************" # 发件人邮箱客户端授权码 gitlab_rails['smtp_domain'] = "qq.com" # smtp域 gitlab_rails['smtp_authentication'] = "login" # smtp认证 gitlab_rails['smtp_enable_starttls_auto'] = true # 自动启动 gitlab_rails['smtp_tls'] = true # tls功能启用 ``` ## 阿里云邮箱 ```shell gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.mxhichina.com" gitlab_rails['smtp_port'] = 465 gitlab_rails['smtp_user_name'] = "你的邮箱" gitlab_rails['smtp_password'] = "邮箱密码" gitlab_rails['smtp_domain'] = "域名" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_tls'] = true gitlab_rails['gitlab_email_from'] = '你的邮箱' user['git_user_email'] = "你的邮箱" ``` 示例 ```shell gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.mxhichina.com" gitlab_rails['smtp_port'] = 465 gitlab_rails['smtp_user_name'] = "******@mcake.com" gitlab_rails['smtp_password'] = "******" gitlab_rails['smtp_domain'] = "mcake.com" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_tls'] = true gitlab_rails['gitlab_email_from'] = '******@mcake.com' user['git_user_email'] = "******@mcake.com" ``` ## 测试邮件是否可正常收发 进入容器进入gitlab控制台 ```shell [root@k8s-gitlab ~]# docker exec -it gitlab bash # gitlab-rails console ``` 发送邮件命令: ```shell # irb(main):003:0> Notify.test_email('收件人邮箱','主题','内容').deliver_now ``` # 备份与恢复 ## 备份仓库 修改配置文件`vim gitlab.rb`,修改完`gitlab-ctl reconfigure` ```shell gitlab_rails['manage_backup_path'] = true gitlab_rails['backup_path'] = "/var/opt/gitlab/backups" gitlab_rails['backup_archive_permissions'] = 0644 gitlab_rails['backup_keep_time'] = 7776000 ``` 备份脚本 ```shell [root@k8s-gitlab ~]# cat /server/scripts/gitlab_bak.sh #!/bin/sh # gitlab backup docker exec gitlab gitlab-rake gitlab:backup:create # Delete the backup file of gitlab 7 days ago find /data/gitlab/opt/backups/ -mtime +7 -name "*_13.8.6_gitlab_backup.tar" | xargs rm -f [root@k8s-gitlab ~]# crontab -l # 每天两点备份gitlab 0 2 * * * /bin/sh /server/scripts/gitlab_bak.sh >/dev/null 2>&1 ``` ## 恢复仓库 ```shell [root@k8s-gitlab ~]# ll /data/gitlab/opt/backups/ -rw-r--r-- 1 chrony polkitd 356853760 Dec 16 17:50 1639648239_2021_12_16_13.8.6_gitlab_backup.tar [root@k8s-gitlab ~]# docker exec -it gitlab bash # gitlab-ctl stop unicorn # gitlab-ctl stop sidekiq # gitlab-rake gitlab:backup:restore BACKUP=1639648239_2021_12_16_13.8.6 # gitlab-ctl restart # gitlab-ctl reconfigure ``` # 挂载硬盘 ```shell hostnamectl set-hostname gitlab-test bash mkdir /data echo `blkid /dev/vdb1 | awk '{print $2}' | sed 's/\"//g'` /data ext4 defaults 0 0 >> /etc/fstab reboot ```