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 等更完整的生产方案。