docker安装gitlib
为了安装方便,这里我们使用 Docker 安装 GitLab 中文版,通常会将 GitLab 的配置 (config) 、 日志 (logs) 、数据 (data) 放到容器之外, 便于日后升级:
docker search gitlabdocker pull gitlab/gitlab-cedocker run --detach \--hostname gitlab.jianf.top \--publish 10443:443 \--publish 10080:80 \--publish 10022:22 \--name gitlab \--restart always \--volume /opt/docker/gitlab/config:/etc/gitlab \--volume /opt/docker/gitlab/logs:/var/log/gitlab \--volume /opt/docker/gitlab/data:/var/opt/gitlab \docker.io/gitlab/gitlab-ce:latest
配置
按上面的方式,gitlab容器运行没问题,但在gitlab上创建项目的时候,生成项目的URL访问地址是按容器的hostname来生成的,也就是容器的id。作为gitlab服务器,我们需要一个固定的URL访问地址,于是需要配置gitlab.rb (宿主机路径:$HOME/gitlab/config/gitlab.rb), 配置http协议所使用的访问地址
# 通过vim 来编辑相应的配置, $HOME是当前系统的根目录,根据自己的路径自行修改vim /opt/docker/gitlab/config/gitlab.rb# 配置http协议所使用的访问地址,不加端口号默认为80external_url='http://127.0.0.1:80'# 配置ssh协议所使用的访问地址和端口gitlab_rails['gitlab_ssh_host'] = 'http://127.0.0.1'gitlab_rails['gitlab_shell_ssh_port'] = 10022 # 此端口是run时22端口映射的10022端口:wq #保存配置文件并退出
由于定义的 url 中有端口号,需要将 nginx 监听的端口号改回 80,否则 nginx 将监听容器的 30000 端口,造成 GitLab 无法使用:
nginx['listen_port'] = 80
配置 ssh 协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = "localhost"gitlab_rails['gitlab_shell_ssh_port'] =10022
修改完之后重启gitlab
# 每次修改gitlab 配置都需要重启docker restart gitlab
邮箱服务配置
主要用于gitlab 日常使用中邮件通知服务
1.修改配置文件,建议使用企业邮箱vim $HOME/gitlab/config/gitlab.rb# 开始邮箱服务gitlab_rails['smtp_enable'] = true# 设置邮箱smtp 服务, 根据自己/公司使用的邮箱协议自由设置即可gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"# 设置邮箱smtp 服务端口gitlab_rails['smtp_port'] = 465# 设置发件人, 建设单独申请邮箱gitlab_rails['smtp_user_name'] = "getlab@xxx.com"# 设置登录邮箱密码gitlab_rails['smtp_password'] = "password"gitlab_rails['smtp_authentication'] = "login"gitlab_rails['smtp_enable_starttls_auto'] = truegitlab_rails['smtp_tls'] = true# gitlab发送人, 可以根据自己的需求自己定义gitlab_rails['gitlab_email_from'] = 'getlab'
账号密码
1 进入容器
docker exec -ti xxxx /bin/bash
2 进入gitlab的bin目录
cd /opt/gitlab/bin
3 执行gitlab-rails console
root@gitlab:/opt/gitlab/bin# gitlab-rails console--------------------------------------------------------------------------------Ruby: ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-linux]GitLab: 14.0.2 (bac4ee4a9e2) FOSSGitLab Shell: 13.19.0PostgreSQL: 12.6--------------------------------------------------------------------------------Loading production environment (Rails 6.1.3.2)irb(main):001:0>
4 找到root的用户,输入u=User.where(id:1).first,然后回车
irb(main):001:0> u=User.where(id:1).first=> #<User id:1 @root>
5 修改password,输入u.password=’12345678’,然后回车
irb(main):002:0> u.password='12345678'=> "12345678"
6 修改确认密码
irb(main):004:0> u.password_confirmation='12345678'=> "12345678"
7 保存修改,输入u.save,然后回车,等到输出true,这时,密码修改成功。
irb(main):005:0> u.saveEnqueued ActionMailer::MailDeliveryJob (Job ID: d4c64606-0597-46ae-a7b5-fa9bb01c2685) to Sidekiq(mailers) with arguments: "DeviseMailer", "password_change", "deliver_now", {:args=>[#<GlobalID:0x00007fe59ae70c98 @uri=#<URI::GID gid://gitlab/User/1>>]}=> true
至此,密码修改成功,可以用12345678密码登录进去了
docker安装gitlib runner
yum 安装
(1)、添加yum源curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash(2)、安装runneryum install gitlab-ci-multi-runner(3)、向GitLab-CI注册runnergitlab-ci-multi-runner register
docker安装
sudo docker run -d --name gitlab-runner --restart always \-v /opt/docker/gitlab-runner/config:/etc/gitlab-runner \-v /var/run/docker.sock:/var/run/docker.sock \docker.io/gitlab/gitlab-runner:alpine
注册gitlab runner
docker run --rm -v /opt/docker/gitlab-runner/config:/etc/gitlab-runner docker.io/gitlab/gitlab-runner:alpine register \--non-interactive \--executor "docker" \--docker-image alpine:latest \--url "http://192.168.75.95:10080/" \--registration-token "3yubq7JcvrYynNSznTEz" \--description "first-register-runner" \--tag-list "test-cicd,dockercicd" \--run-untagged="true" \--locked="false" \--access-level="not_protected"sudo docker run docker.io/gitlab/gitlab-runner:alpine register \--non-interactive \--executor "docker" \--docker-image alpine:latest \--url "http://192.168.75.95:10080/" \--registration-token "3yubq7JcvrYynNSznTEz" \--description "first-register-runner" \--tag-list "test-cicd,dockercicd" \--run-untagged="true" \--locked="false" \--access-level="not_protected"
docker exec -it gitlab-runner gitlab-runner register
配置密钥
输入命令,一直回车即可。
$ ssh-keygen -t rsa -C ‘1111111@qq.com’
Gitlab命令
重新应用gitlab的配置
gitlab-ctl reconfigure
重启gitlab服务
gitlab-ctl restart
查看gitlab运行状态
gitlab-ctl status
停止gitlab服务
gitlab-ctl stop
查看gitlab运行日志
gitlab-ctl tail
停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sideki
docker-compose安装gitlab
编写docker-compose-gitlab.yml
version: '3.5'services:gitlab:image: gitlab/gitlab-ce:latesthostname: 192.168.75.95restart: unless-stoppedenvironment:GITLAB_OMNIBUS_CONFIG: |gitlab_rails['gitlab_shell_ssh_port'] = 22ports:- "10080:80"- "10022:22"volumes:- ../gitlab/config/gitlab:/etc/gitlab- ../gitlab/data/gitlab:/var/opt/gitlab- ../gitlab/logs:/var/log/gitlabnetworks:- gitlabgitlab-runner:image: gitlab/gitlab-runner:alpinerestart: unless-stoppeddepends_on:- gitlabprivileged: truevolumes:- ../gitlab/config/gitlab-runner:/etc/gitlab-runner- /var/run/docker.sock:/var/run/docker.sock- /bin/docker:/bin/dockernetworks:- gitlabnetworks:gitlab:
命令启动: docker-compose -f docker-compose-gitlab.yml -p gitlab up -d
参考:
https://docs.gitlab.com.cn/
https://hub.docker.com/r/beginor/gitlab-ce/
