• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    GitLab使用外部提供的Redis缓存数据库的方法详解

    缺省的情况下GitLab的官方镜像中提供了一个Redis,如果希望把此缓存数据库放在GitLab的容器之外的话需要怎么做呢?这篇文章结合示例进行说明具体的做法。

    环境准备

    配置文件:GitLab

    version: '2' 
    services:
     # Version Control service: Gitlab
     gitlab:
     image: gitlab/gitlab-ce:12.10.5-ce.0
     ports:
     - "35001:80"
     - "30022:22"
     - "443:443"
     volumes:
     - ./log/:/var/log/gitlab
     - ./data/:/var/opt/gitlab
     - ./conf/:/etc/gitlab
     restart: "no"

    配置文件:Redis

    [root@liumiaocn redis]# cat docker-compose.yml 
    version: '2'
    services:
     # redis master
     master:
     image: redis:5.0.9
     container_name: redis
     restart: always
     command: redis-server --port 6379
     ports:
     - 6379:6379
     volumes:
     - ./data:/data
    [root@liumiaocn redis]# 

    启动命令

    执行命令:docker-compose up -d

    结果确认GitLab

    [root@liumiaocn gitlab]# docker-compose ps
     Name Command State  Ports 
    ---------------------------------------------------------------------------------------------------------------------
    gitlab_gitlab_1 /assets/wrapper Up (healthy) 0.0.0.0:30022->22/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:35001->80/tcp
    [root@liumiaocn gitlab]#

    Redis

    [root@liumiaocn redis]# docker-compose ps
    Name Command State Ports 
    -----------------------------------------------------------------------
    redis docker-entrypoint.sh redis ... Up 0.0.0.0:6379->6379/tcp
    [root@liumiaocn redis]# 

    使用外部Redis服务

    步骤1: 设定gitlab.rb

    [root@liumiaocn redis]# docker exec -it gitlab_gitlab_1 sh
    # cd /etc/gitlab
    # ls
    gitlab-secrets.json ssh_host_ecdsa_key ssh_host_ed25519_key ssh_host_rsa_key trusted-certs
    gitlab.rb	 ssh_host_ecdsa_key.pub ssh_host_ed25519_key.pub ssh_host_rsa_key.pub
    # cp -p gitlab.rb gitlab.rb.org
    # vi gitlab.rb
    # 
    # diff gitlab.rb gitlab.rb.org
    585,586c585,586
     gitlab_rails['redis_host'] = "192.168.163.151"
     gitlab_rails['redis_port'] = 6379
    ---
    > # gitlab_rails['redis_host'] = "127.0.0.1"
    > # gitlab_rails['redis_port'] = 6379
    1049c1049
     redis['enable'] = false
    ---
    > # redis['enable'] = true
    # 

    步骤2: 验证连接

    [root@liumiaocn redis]# docker exec -it gitlab_gitlab_1 sh
    # redis-cli -h 192.168.163.151 -p 6379
    192.168.163.151:6379> ping
    PONG
    192.168.163.151:6379> keys *
    (empty list or set)
    192.168.163.151:6379>

    步骤3: gitlab-ctl reconfigure

    执行命令:gitlab-ctl reconfigure

    或者

    执行命令:docker-compose restart

    执行日志示例如下所示:

    # gitlab-ctl reconfigure
    Starting Chef Client, version 14.14.29
    resolving cookbooks for run list: ["gitlab"]
    Synchronizing Cookbooks:
     - package (0.1.0)
     - postgresql (0.1.0)
     - redis (0.1.0)
     - monitoring (0.1.0)
     - registry (0.1.0)
     - mattermost (0.1.0)
     - consul (0.1.0)
     - gitaly (0.1.0)
     - praefect (0.1.0)
     - letsencrypt (0.1.0)
     - nginx (0.1.0)
     - runit (4.3.0)
     - acme (4.1.1)
     - crond (0.1.0)
     - gitlab (0.0.1)
    Installing Cookbook Gems:
    Compiling Cookbooks...
    Recipe: gitlab::default
    ...省略
    Recipe: monitoring::gitlab-exporter
     * runit_service[gitlab-exporter] action restart (up to date)
    
    Running handlers:
    Running handlers complete
    Chef Client finished, 14/654 resources updated in 03 minutes 13 seconds
    gitlab Reconfigured!
    # 

    注:虽然提示已经完成了,后续的处理一般还需要稍等,可根据docker logs命令获取的日志信息来以及docker ps返回的状态信息来确认是否真正结束。

    步骤4 : 结果确认

    登录之后可以正常进行root密码的重置

    重置之后也可以使用新的密码正常登录

    进入到GitLab容器中可以看到内置的Redis的服务已经不在运行了

    [root@liumiaocn gitlab]# docker exec -it gitlab_gitlab_1 sh
    # gitlab-ctl status
    run: alertmanager: (pid 1629) 714s; run: log: (pid 972) 1117s
    run: gitaly: (pid 1609) 718s; run: log: (pid 462) 1337s
    run: gitlab-exporter: (pid 2412) 671s; run: log: (pid 893) 1152s
    run: gitlab-workhorse: (pid 2405) 672s; run: log: (pid 831) 1183s
    run: grafana: (pid 1644) 713s; run: log: (pid 1443) 778s
    run: logrotate: (pid 864) 1167s; run: log: (pid 873) 1166s
    run: nginx: (pid 846) 1178s; run: log: (pid 855) 1177s
    run: postgres-exporter: (pid 1638) 713s; run: log: (pid 1008) 1103s
    run: postgresql: (pid 498) 1323s; run: log: (pid 523) 1322s
    run: prometheus: (pid 1584) 719s; run: log: (pid 940) 1130s
    run: sidekiq: (pid 2399) 672s; run: log: (pid 811) 1194s
    run: sshd: (pid 30) 1381s; run: log: (pid 29) 1381s
    run: unicorn: (pid 3147) 499s; run: log: (pid 792) 1203s
    # 

    连接外部的Redis服务即可可以看到相关的缓存数据内容了。

    [root@liumiaocn gitlab]# docker exec -it redis sh
    # redis-cli -h 192.168.163.151 -p 6379
    192.168.163.151:6379> ping
    PONG
    192.168.163.151:6379> keys *
     1) "resque:gitlab:cron_job:repository_check_worker"
     2) "resque:gitlab:cron_job:container_expiration_policy_worker"
     3) "resque:gitlab:cron_job:import_export_project_cleanup_worker"
     4) "resque:gitlab:cron_job:container_expiration_policy_worker:enqueued"
     5) "gitlab:exclusive_lease:user_update_tracked_fields:1"
     6) "resque:gitlab:cron_job:pages_domain_verification_cron_worker"
     7) "cache:gitlab:broadcast_message_current_banner_json"
    ...省略
    94) "cache:gitlab:flipper/v1/feature/prometheus_metrics_measure_import_export_clean_up_cpu_duration"
    95) "resque:gitlab:cron_job:remove_unreferenced_lfs_objects_worker:enqueued"
    96) "resque:gitlab:cron_job:prune_old_events_worker:enqueued"
    97) "cache:gitlab:flipper/v1/feature/soft_email_confirmation"
    98) "session:gitlab:2::ad9aec16d58b972dc89d245757ab7b87b4fcb5c08b9fdcb4572be5ebe4807cba"
    99) "resque:gitlab:queues"
    192.168.163.151:6379> 

    总结

    到此这篇关于GitLab: 如何使用外部提供的Redis缓存数据库的文章就介绍到这了,更多相关gitlab使用外部Redis缓存数据库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • Spring AOP实现Redis缓存数据库查询源码
    上一篇:IDEA 2020 设置项目集成git 及svn和git之间的切换问题
    下一篇:git push 本地项目推送到远程分支的方法(git命令版)
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    GitLab使用外部提供的Redis缓存数据库的方法详解 GitLab,使用,外部,提供,的,