docker脚本部署gitlab

脚本简介

  1. 基于运维统一脚本中,常见服务部署下的CICD相关组件的gitlab选项
  2. 可连接官方镜像仓库,pull镜像,然后再当前宿主机的机器上启动gitlab服务

注意:

  1. gitlab的镜像相对较大,且网速不好的情况下下载速度比较慢(建议手动pull)
  2. docker pull gitlab/gitlab-ce:11.10.4-ce.0
  3. 镜像版本可通过镜像仓库自行更换

脚本注解

  1. 该脚本为了人性化设置,选择所以的变量通过屏幕上用户输入的形式获取
  2. 如果不填写,选用默认值是,其他都可以不变,但是提示下面的内容是,需要根据实际情况添加本机ip地址
    请输入gitlab容器启动时gitlab访问的URL(http://192.168.1.129):

注意:

  1. 格式必须是http:// 开头的
  2. ip地址是本机的ip地址即可

执行方式

sh start_gitlab.sh

脚本内容

#!/bin/bash
#该脚本用于测试环境部署gitlab
#所有者:北城半夏
#
#当前版本
#v1.0.1
###################################################################
info(){
  echo -e "\033[35m 【`hostname` `date '+%Y-%m-%d %H:%M:%S'`\033[0m" "\033[36m$1\033[0m "
}
info1(){
  echo -e "\033[36m $1 \033[0m "
}
info5(){
 info1 "==============================================================================" 
}
info9(){
  echo -e "\033[32m 【`hostname` `date '+%Y-%m-%d %H:%M:%S'`\033[0m" "\033[36m$1\033[0m "
}
info8(){
  echo -e "\033[31m 【`hostname` `date '+%Y-%m-%d %H:%M:%S'`\033[0m" "\033[35m$1\033[0m "
}
info6(){
  echo -e "\033[33m 【`hostname` `date '+%Y-%m-%d %H:%M:%S'`\033[0m" "\033[91m$1\033[0m "
}
info7(){
  echo -e "\033[35m 【`hostname` `date '+%Y-%m-%d %H:%M:%S'`\033[0m" "\033[32m$1\033[0m "
}
###################################################################


gitlab_run(){
[ ! -d /opt/gitlab ] && mkdir ${GITLAB_HOME}
docker run -d --detach \
  --env GITLAB_OMNIBUS_CONFIG="external_url ${GITLAB_url}; gitlab_rails['lfs_enabled'] = true; nginx['listen_port'] = ${GITLAB_port}" \
  -p ${gitlab_port}:80 \
  --name gitlab \
  --restart always \
  --volume $gitlab_home/config:/etc/gitlab \
  --volume $gitlab_home/logs:/var/log/gitlab \
  --volume $gitlab_home/data:/var/opt/gitlab \
  ${gitlab_version} >/dev/null
  [ $? -eq 0 ] && info9 "${gitlab_name}启动成功"
}

start_gitlab(){
  local name="gitlab"  GITLAB_HOME="/opt/gitlab" GITLAB_port="80" GITLAB_url="http://192.168.1.129" 
  info5
  read -p "请输入${name}数据持久化存储目录(${GITLAB_HOME}):" gitlab_home
  read -p "请输入${name}容器启动的容器名称(${name}):" gitlab_name
  read -p "请输入${name}容器启动的容器端口(${GITLAB_port}):" gitlab_port
  read -p "请输入${name}容器启动的镜像版本(gitlab/gitlab-ce:11.10.4-ce.0):" gitlab_version
  read -p "请输入${name}容器启动时${name}访问的URL(${GITLAB_url}):" GITLAB_url
  gitlab_version=${gitlab_version:-gitlab/gitlab-ce:11.10.4-ce.0}
  gitlab_name=${gitlab_name:-gitlab}
  gitlab_port=${gitlab_port:-80}
  gitlab_home=${gitlab_home:-/opt/gitlab}
  GITLAB_url=${GITLAB_url}
  if [ -z ${gitlab_version} ] && [ -z ${gitlab_name} ] && [ -z ${gitlab_port} ]&& [ -z ${gitlab_home} ];then
   info8 "请根据提示,输入所有的值"
   exit 0
 else
 info8 "第一次使用,选择启动方式必须是: run"
 read -p "选择${gitlab_name}的启动方式:(run|restart|start|stop|rm|status):" gitlab_start_run1
 if [ -z ${gitlab_start_run1} ];then
       info6 "请重新输入"    
       info5
       CICD_assembl_run
 else
   case $gitlab_start_run1 in
     'run')
         if [ `docker images | grep gitlab|wc -l` -eq 0 ];then
           info7 "start pull ${gitlab_version}, wait !!!!"
            docker pull ${gitlab_version}  >/dev/null
          fi
         gitlab_run;;
     'status')
       info3
         docker ps |grep  ${gitlab_name};;
         #[ $? -eq 0 ] && info " ${gitlab_name} Restart successful";;
     'restart')
         docker restart ${gitlab_name} &>/dev/null
         [ $? -eq 0 ] && info " ${gitlab_name} Restart successful";;
     'start')
            docker start ${gitlab_name} &>/dev/null
            [ $? -eq 0 ] &&  info " ${gitlab_name} Start successful";;
     'stop')
           docker stop ${gitlab_name} &>/dev/null
           [ $? -eq 0 ] &&   info " ${gitlab_name} Stop successful";;
     'rm')
              docker rm -f ${gitlab_name} &>/dev/null
           [ $? -eq 0 ] &&  info " ${gitlab_name} delete successful";;
      '*')   
              info "脚本执行错误,请检查后继续";;
   esac
  fi
 fi
}
start_gitlab
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北城 半夏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值