docker 部署 gitlab-ce 16.9.1的详细过程,


目录
  • 拉取 gitlab-ce 镜像
  • 创建 gitlab-ce 持久化目录
  • 启停脚本配置
  • 配置 gitlab-ce
    • 编辑 gitlab-ce 配置文件
    • 重启 gitlab-ce
    • 配置 root 密码
  • 设置中文

    gitlab/gitlab-ce(需要科学上网)

    拉取 gitlab-ce 镜像

    docker pull gitlab/gitlab-ce:16.9.1-ce.0

    查看镜像是不是有 Volumes 的配置

    docker inspect gitlab/gitlab-ce:16.9.1-ce.0 --format='{{.Config.Volumes}}'

    获取到类似如下的内容,说明有 Volumes 的配置

    map[/etc/gitlab:{} /var/log/gitlab:{} /var/opt/gitlab:{}]

    创建 gitlab-ce 持久化目录

    mkdir -p /data/gitlab-ce-root
    cat << EOF > /data/gitlab-ce-root/gitlab-ce.env
    GITLAB_BASE_DIR='/data/gitlab-ce-root'
    GITLAB_CONFIG_DIR="\${GITLAB_BASE_DIR}/conf"
    GITLAB_DATA_DIR="\${GITLAB_BASE_DIR}/data"
    GITLAB_LOG_DIR="\${GITLAB_BASE_DIR}/logs"
    EOF

    创建目录

    source /data/gitlab-ce-root/gitlab-ce.env
    mkdir -p ${GITLAB_CONFIG_DIR} ${GITLAB_DATA_DIR} ${GITLAB_LOG_DIR}

    启停脚本配置

    • 通过 start 启动容器
    • 通过 stop 停止容器
    • 通过 restart 重启容器
    • 通过 exec 进入容器
    #!/usr/bin/env bash
    source /data/gitlab-ce-root/gitlab-ce.env
    GITLAB_PORT='8888'
    GITLAB_MEM=4G
    GITLAB_NAME='gitlab-ce'
    GITLAB_IMAGE='gitlab/gitlab-ce:16.9.1-ce.0'
    function useAge () {
      echo "usage: [ bash ${0} start ] to start gitlab-ce"
      echo "usage: [ bash ${0} stop ] to stop gitlab-ce"
      echo "usage: [ bash ${0} restart ] to restart gitlab-ce"
      echo "usage: [ bash ${0} exec ] to exec gitlab-ce"
      exit 1
    }
    function optStart () {
    DOCKER_PS=$(docker ps -a | awk "/${GITLAB_NAME}/ {print \$NF}")
    if [[ "${DOCKER_PS}"x == "${GITLAB_NAME}"x ]];then
      DOCKER_STATUS=$(docker ps -a --format="{{.Names}} {{.Status}}" | awk "/${GITLAB_NAME}/ {print \$2}")
      if [[ "${DOCKER_STATUS}"x == "Up"x ]];then
        echo "${GITLAB_NAME} is up"
      else
        docker start ${GITLAB_NAME} > /dev/null
        if [ $? -eq 0 ];then
          echo "${GITLAB_NAME} start success"
        fi
      fi
    else
      docker run -d \
        -p ${GITLAB_PORT}:80 \
        -v ${GITLAB_CONFIG_DIR}:/etc/gitlab  \
        -v ${GITLAB_LOG_DIR}:/var/log/gitlab \
        -v ${GITLAB_DATA_DIR}:/var/opt/gitlab \
        --restart always \
        --privileged=true \
        --name ${GITLAB_NAME} \
        --memory=${GITLAB_MEM} \
        ${GITLAB_IMAGE}
    fi
    }
    function optStop () {
      docker stop ${GITLAB_NAME} > /dev/null
      if [ $? -eq 0 ];then
        echo "${GITLAB_NAME} stop success"
      fi
    }
    function optExec () {
      docker exec -it ${GITLAB_NAME} bash
    }
    if [ $# -eq 0 ];then
      useAge
    fi
    case $1 in
        'start' )
            optStart
            ;;
        'stop' )
            optStop
            ;;
        'restart' )
            optStop
            optStart
            ;;
        'exec' )
            optExec
            ;;
        '*' )
            useAge
            ;;
    esac

    配置 gitlab-ce

    进入 gitlab-ce 容器

    docker exec -it gitlab-ce bash

    编辑 gitlab-ce 配置文件

    egrep -q '^external_url' /etc/gitlab/gitlab.rb || echo "external_url 'http://172.72.0.170'" >> /etc/gitlab/gitlab.rb

    重启 gitlab-ce

    退出容器,然后重启容器

    docker restart gitlab-ce

    gitlab-ce 的重启时间非常的久,这个和硬件有关系,等到日志出现 gitlab Reconfigured 就说明重启完成了,就可以用浏览器访问 ip 地址去打开 gitlab 页面了

    配置 root 密码

    进入容器

    docker exec -it gitlab-ce bash

    进入控制台

    gitlab-rails console -e production

    耐心等待,等他出现下面的内容

    --------------------------------------------------------------------------------
     Ruby:         ruby 3.1.4p223 (2023-03-30 revision 957bb7cb81) [x86_64-linux]
     GitLab:       16.9.1 (0ef8ba69a8f) FOSS
     GitLab Shell: 14.33.0
     PostgreSQL:   14.10
    ------------------------------------------------------------[ booted in 44.67s ]
    Loading production environment (Rails 7.0.8)
    irb(main):001:0>

    查询管理员的名字

    user = User.where(id:1).first

    返回如下的内容

    => #<User id:1 @root>

    设置密码

    user.password='Password@123'

    保存密码,返回 true 表示修改成功

    user.save!

    设置中文

    找到 Localization ,把 Language 换成简体中文,然后save change

    刷新一下页面,就显示中文了

    到此这篇关于docker 部署 gitlab-ce 16.9.1的文章就介绍到这了,更多相关docker 部署 gitlab-ce内容请搜索PHP之友以前的文章或继续浏览下面的相关文章希望大家以后多多支持PHP之友!

    您可能感兴趣的文章:
    • docker+gitlab+jenkins从零搭建自动化部署
    • docker+gitlab+gitlab-runner部署详解
    • 基于Docker部署GitLab环境搭建的方法步骤
    • 使用Docker快速部署Gitlab的方法
    • Docker-compose一键部署gitlab中文版的方法步骤
    • Docker-compose部署gitlab的方法步骤

    相关内容