Docker部署GitLab脚本

相关概念:Docker

这个脚本适合快速部署单机版 GitLab 容器,并把配置、日志和数据分开挂载。

脚本

#!/bin/bash
set -e
 
DEPLOY_ROOT="${1:-$HOME/docker/gitlab-ce}"
GITLAB_VERSION="${2:-16.11.10-ce.0}"
HOSTNAME="${3:-gitlabserver}"
 
GITLAB_HOME="$DEPLOY_ROOT/$GITLAB_VERSION"
GITLAB_IMAGE="nexusserver:8083/gitlab/gitlab-ce"
 
log_info() {
  echo "[INFO] $1"
}
 
create_gitlab_dirs() {
  if [ -d "$GITLAB_HOME" ]; then
    echo "[ERROR] $GITLAB_HOME already exists!" >&2
    exit 1
  fi
 
  mkdir -p "$GITLAB_HOME/data" "$GITLAB_HOME/logs" "$GITLAB_HOME/config"
  log_info "Create folder success!"
}
 
start_gitlab_container() {
  docker run -d \
    --hostname "$HOSTNAME" \
    -p 443:443 \
    -p 80:80 \
    -p 22:22 \
    --name gitlab \
    --restart always \
    -v "$GITLAB_HOME/config:/etc/gitlab" \
    -v "$GITLAB_HOME/logs:/var/log/gitlab" \
    -v "$GITLAB_HOME/data:/var/opt/gitlab" \
    --shm-size 256m \
    "$GITLAB_IMAGE:$GITLAB_VERSION"
 
  log_info "GitLab started: $GITLAB_HOME"
}
 
create_gitlab_dirs
start_gitlab_container

参数

  • 第一个参数:部署根目录
  • 第二个参数:GitLab 版本
  • 第三个参数:容器主机名

说明

这是单机部署脚本,更适合个人或小团队环境,不涉及外部数据库、对象存储、HA 等更完整的生产方案。