前言
首先这不是广告。
起因是我的电脑C盘内存已经标红了,看着难受,我想重装电脑,代码和系统盘在一块盘上,所以重装电脑前需要转移我的一些特殊代码。
最近清空了一些缓存,又可以苟一段时间了
还有个原因是,win11有个脑残的设计,一块硬盘分成两个分区,只要一个分区装系统,那么中间会多出来一个奇怪的不可删除的分区,导致无法重新分配分区空间。
开整 创建 docker 项目
我先在电脑本地下载镜像:(国内的docker 镜像源都下架了,无法直接下载,需要梯子,我的 nas 安装的梯子有问题 )
dcoker pull gitlab/gitlab-ce:laster
然后导出压缩包
docker save -o gitlab-ce.tar gitlab/gitlab-ce:laster
上传到NAS之后导入镜像,创建项目,(创建容器之后一直重启中,所以不要创建容器)
对应的docker-compose.yaml如下:注意默认的端口被我修改了,因为坑爹的绿厂把这几个默认端口全占用了
配置文件路径:共享文件夹/docker/gitlab/docker-compose.yaml
version: '3.8'
services:
gitlab:
image: gitlab/gitlab-ce:latest
container_name: gitlab
restart: always
hostname: '192.168.0.xxx' # 替换为你的域名或主机名
ports:
- "8787:8787" # HTTP 端口 默认 80
- "8443:8443" # HTTPS 端口 默认 443
- "8822:8822" # SSH 端口 默认 22
volumes:
- ./config:/etc/gitlab # 配置文件
- ./logs:/var/log/gitlab # 日志文件
- ./data:/var/opt/gitlab # 应用数据
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://192.168.0.xxx:8787' # 替换为你的访问地址
gitlab_rails['time_zone'] = 'Asia/Shanghai' # 设置时区
gitlab_rails['gitlab_shell_ssh_port'] = 8822 # 配置 SSH 端口
创建项目之后先运行,然后等初始化完成,到配置文件所在目录里,找到config目录下的gitlab.rb配置文件
修改 gitlab 配置
分别修改下面几个配置
nginx['listen_port'] = 8787
gitlab_rails['forti_authenticator_port'] = 8443
gitlab_rails['gitlab_shell_ssh_port'] = 8822 # 这个不改也没事,因为改了也没用
然后重新启动服务等待服务稳定之后访问服务:192.168.0.xxx:8787
出现该页面说明还没加载完,继续等待。
出现这个页面说明加载成功了,登录即可,初始密码在config目录下initial_root_password里。
登录之后是这样的,可以在preferences -> Localization里改成简体中文。
修改通知邮箱
接下来你需要做的是修改默认邮箱,gitlab 默认已经添加了邮箱,但是没有邮箱服务,需要你在gitlab.rb里添加下面的配置:
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "xxxxx@qq.com"
gitlab_rails['smtp_password'] = "xxxxx" # 使用授权码
gitlab_rails['smtp_domain'] = "qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_ssl'] = true # 如果使用 465 端口
gitlab_rails['smtp_enable_starttls_auto'] = false
gitlab_rails['smtp_tls'] = true
gitlab_rails['smtp_pool'] = true
smtp_password是授权码,需要你在对应的邮箱的设置里配置下。
接着你可以直接在页面中点击头像选择个人资料,修改邮箱,会提示你验证邮箱,没问题的话,你可以收到验证邮箱的链接,点击就可以了。
还有一种很有意思的验证方法,你可以在后台连接终端,
输入下面的命令
gitlab-rails console
然后创建一个测试邮箱并回车:
Notify.test_email(”, ‘GitLab email’, ‘Hello world’).deliver_now
irb(main):001:0> Notify.test_email('xxxxxx@qq.com', 'GitLab email', 'Hello world').deliver_now
irb(main):002:0*
Delivered mail 67540fba6e748_1b372fe4-4ae@192.168.0.xxx.mail (993.0ms)
=> #<:message:512460 multipart:="" false="" headers:="" sat="" dec="">, >, >, , >, , , , , , >
irb(main):003:0>
这时候我可以收到测试的邮件了。