docker安装gitlib
为了安装方便,这里我们使用 Docker 安装 GitLab 中文版,通常会将 GitLab 的配置 (config) 、 日志 (logs) 、数据 (data) 放到容器之外, 便于日后升级:
docker search gitlab
docker pull gitlab/gitlab-ce
docker 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协议所使用的访问地址,不加端口号默认为80
external_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'] = true
gitlab_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) FOSS
GitLab Shell: 13.19.0
PostgreSQL: 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.save
Enqueued 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)、安装runner
yum install gitlab-ci-multi-runner
(3)、向GitLab-CI注册runner
gitlab-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:latest
hostname: 192.168.75.95
restart: unless-stopped
environment:
GITLAB_OMNIBUS_CONFIG: |
gitlab_rails['gitlab_shell_ssh_port'] = 22
ports:
- "10080:80"
- "10022:22"
volumes:
- ../gitlab/config/gitlab:/etc/gitlab
- ../gitlab/data/gitlab:/var/opt/gitlab
- ../gitlab/logs:/var/log/gitlab
networks:
- gitlab
gitlab-runner:
image: gitlab/gitlab-runner:alpine
restart: unless-stopped
depends_on:
- gitlab
privileged: true
volumes:
- ../gitlab/config/gitlab-runner:/etc/gitlab-runner
- /var/run/docker.sock:/var/run/docker.sock
- /bin/docker:/bin/docker
networks:
- gitlab
networks:
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/