• docker部署gitlab 12.10.6过程


    docker部署gitlab 12.10.6过程

    1.docker安装

    docker指定版本安装【官方文档步骤】

    官方文档地址:https://docs.docker.com/engine/install/centos/

    # 1.安装yum工具及设置docker-ce镜像库
    sudo yum install -y yum-utils
    
    # 国外的镜像下载太慢了改成阿里云镜像库
    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    
    # 2.阿里云镜像库
    sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
    # 3.查询docker可用稳定版本
    yum list docker-ce --showduplicates | sort -r
    
    [root@VM-0-17-centos ~]# yum list docker-ce --showduplicates | sort -r
    Repository epel is listed more than once in the configuration
    Loading mirror speeds from cached hostfile
    Loaded plugins: fastestmirror, langpacks
    Installed Packages
    docker-ce.x86_64            3:24.0.6-1.el7                     docker-ce-stable 
    docker-ce.x86_64            3:24.0.6-1.el7                     @docker-ce-stable
    docker-ce.x86_64            3:24.0.5-1.el7                     docker-ce-stable 
    docker-ce.x86_64            3:24.0.4-1.el7                     docker-ce-stable 
    docker-ce.x86_64            3:24.0.3-1.el7                     docker-ce-stable 
    docker-ce.x86_64            3:24.0.2-1.el7                     docker-ce-stable 
    docker-ce.x86_64            3:24.0.1-1.el7                     docker-ce-stable 
    docker-ce.x86_64            3:24.0.0-1.el7                     docker-ce-stable 
    docker-ce.x86_64            3:23.0.6-1.el7                     docker-ce-stable 
    docker-ce.x86_64            3:23.0.5-1.el7                     docker-ce-stable 
    docker-ce.x86_64            3:23.0.4-1.el7                     docker-ce-stable 
    
    
    
    # 4.安装指定版本<24.0.6>版本
    yum install docker-ce-24.0.6 -y
    
    # 5.添加开机启动docker服务及运行启动docker服务
    systemctl enable docker
    systemctl start docker
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37

    2.配置国内docker源,使其下载镜像更快

    [root@localhost ]# cat /etc/docker/daemon.json 
    {
       "registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
    }
    
    
    # 上述为文件内容添加以后重载docker配置及重启docker服务
    systemctl daemon-reload
    systemctl restart docker
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    3.根据github步骤分别启动redis、postgresql、gitlab容器

    地址:https://github.com/sameersbn/docker-gitlab/tree/12.10.6#quick-start

    docker run --name gitlab-redis -d \
    --volume /data/gitlab/redis:/var/lib/redis \
    sameersbn/redis:4.0.9-2
    
    • 1
    • 2
    • 3
    docker run --name gitlab-postgresql -d \
    --env 'DB_NAME=gitlabhq_production' \
    --env 'DB_USER=gitlab' --env 'DB_PASS=youyigame@2023' \
    --env 'DB_EXTENSION=pg_trgm' \
    --volume /data/gitlab/postgresql:/var/lib/postgresql \
    sameersbn/postgresql:10-2
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在启动gitlab容器之前,需要先准备几个参数的值
    #gitlab的域名
    GITLAB_HOST: gitlab.xxx.com

    #gitlab容器内的时区,rails中时区不使用shanghai,用beijing
    GITLAB_TIMEZONE:Beijing

    #gitlab容器内的仓库http地址端口
    GITLAB_PORT:80

    #gitlab容器内的仓库ssh地址端口
    GITLAB_SSH_PORT:10022

    #base64编码的随机字符串,以下参数可在在线base64网站中生成
    GITLAB_SECRETS_DB_KEY_BASE
    GITLAB_SECRETS_SECRET_KEY_BASE
    GITLAB_SECRETS_OTP_KEY_BASE

    以上参数准备好以后即可运行gitlab容器,运行后等待几分钟即可进入首页

    docker run --name gitlab -d \
    --link gitlab-postgresql:postgresql --link gitlab-redis:redisio \
    --env GITLAB_HOST=gitlab.xxxx.com \
    --env GITLAB_TIMEZONE=Beijing \
    --publish 10022:22 --publish 10080:80 \
    --env 'GITLAB_PORT=80' --env 'GITLAB_SSH_PORT=10022' \
    --env 'GITLAB_BACKUP_SCHEDULE=daily' \
    --env 'GITLAB_BACKUP_TIME=01:00' \
    --env 'GITLAB_SECRETS_DB_KEY_BASE=eW91eWlnYW1lQDIwMjM' \
    --env 'GITLAB_SECRETS_SECRET_KEY_BASE=eW91eWlnYW1lQDIwMjM' \
    --env 'GITLAB_SECRETS_OTP_KEY_BASE=eW91eWlnYW1lQDIwMjM' \
    --volume /data/gitlab/gitlab:/home/git/data \
    sameersbn/gitlab:12.10.6
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    5.gitlab备份方式

    • 1.启动容器时增加参数, 容器内时区为UTC,每天凌晨1点定时备份,即每天9点备份一次
    --env 'GITLAB_BACKUP_SCHEDULE=daily' \
    --env 'GITLAB_BACKUP_TIME=01:00' \
    
    • 1
    • 2
    • 2.进入容器备份
    # 进入容器
    docker exec -it gitlab bash
    
    # 切换用户为git,使用git命令进行备份
    su git
    
    cd /home/git/gitlab/bin
    
    ./rake gitlab:backup:create
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 3.容器外执行备份,备份时间为当前时间,可写shell定时备份
    docker exec -it --user git gitlab ./bin/rake gitlab:backup:create 
    
    • 1

    4.nginx站点反向代理

    upstream gitlab {
    	server 127.0.0.1:10080;
    
    }
    
    server {
        listen 80;
        server_name gitlab.xxxx.com;
    
        location / {
            client_max_body_size 200m;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_set_header X-NginX-Proxy true;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_pass http://gitlab;
            proxy_redirect off;
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    5.【版本升级注意事项】

    【sameersbn/gitlab】与官方的docker部署相比较为简单,按照版本由低到高一步一步拉起容器,及时观察容器启动日志。容器内部会自动进行数据迁移,如遇到错误,根据错误解决即可,大多遇到的错误都是缺少参数,在容器启动时,将版本差异的参数补齐即可。

    • ① 先将现有的gitlab仓库映射的文件夹备份迁移至新机器
    • ② 建议先升到当前大版本的最高小版本再升到下个大版本的第一个小版本,版本可在sameersbn/gitlab 的tag中查找。
      例如:12.10.6 —> 13.0.0 —> 13.12.4 —> 14.0.0 —> 14.1.1 -> 14.2.1 在往后升级版本会出现报错,暂未解决
    • ③ 升级完毕后检查各项功能是否有问题,如【能否正常拉取提交代码,镜像仓库,webhook功能等】

    客户端配置

    由于在启动容器时配置gitlab的ssh端口不为22。所以要在本地.ssh/config中增加如下配置才能正常拉取ssh地址仓库代码。

    
    Host gitlab.xxx.com
    	HostName gitlab.xxx.com
    	User	 git
    	Port	 10022
    	IdentityFile ~/.ssh/id_rsa
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 相关阅读:
    Vue.js+SpringBoot开发木马文件检测系统
    在树莓派上安装编译的vim——开启python3支持
    java中的Random
    8万字带你入门Rust
    【JavaWeb - 网页编程】五 书城项目
    springboot+websocket聊天室(私聊+群聊)
    我的数据结构与算法「排序算法」
    计算机毕业设计 JSPM校园闲置物品交易平台的设计与实现 Java实战项目 附源码+文档+视频讲解
    程序员的自我修养读后感
    艾美捷RPMI-1640培养基L-谷氨酰胺的参数和配方
  • 原文地址:https://blog.csdn.net/qq_39965424/article/details/134535412