官方中文教程:https://www.gitlab.com.cn/ins…
官方安装链接:https://about.gitlab.com/install
普通方式安装请见:https://segmentfault.com/a/11…
环境要求:内存至少 4G,GitLab 是很耗内存滴
一、安装
一般会将 GitLab 的配置 (etc)、日志 (log)、数据 (data) 放到容器之外,便于日后升级
docker pull gitlab/gitlab-ce:11.6.4-ce.0
# 通过 docker run 中加入环境变量, 取名为 gitlab
docker run --detach \ # 后台运行 -d
# --hostname song.local \ # 指定容器域名, 未知功能: 创建镜像仓库的时候使用到
-p 8443:443 \ # 将容器内 443 端口映射到主机 8443, 提供 https 服务
-p 80:80 \ # 将容器内 80 端口映射到主机 8080, 提供 http 服务
-p 10022:22 \ # 将容器内 22 端口映射到主机 1002, 提供 ssh 服务
--name gitlab \ # 指定容器名称
--restart=unless-stopped \ # 容器运行中退出时(不是手动退出), 自动重启
--volume /var/lib/docker/volumes/gitlab-data/etc:/etc/gitlab \ # 将本地 /var/lib/docker/volumes/gitlab-data/etc 挂载到容器内 /etc/gitlab
--volume /var/lib/docker/volumes/gitlab-data/log:/var/log/gitlab \ # 将本地将本地 /var/lib/docker/volumes/gitlab-data/log 挂载到容器内 /var/log/gitlab
--volume /var/lib/docker/volumes/gitlab-data/data:/var/opt/gitlab \ # 将本地将本地 /var/lib/docker/volumes/gitlab-data/data 挂载到容器内 /var/opt/gitlab
gitlab/gitlab-ce:11.6.4-ce.0 # 镜像名称: 版本
为了方便日后启动,创建一个启动脚本:
gitlab-docker-restart.sh
,代码如下:
#!/bin/bash
serverName="gitlab"
imageName="gitlab/gitlab-ce:11.6.4-ce.0"
function runServer(){
docker run --detach \
-p 8443:443 \
-p 80:80 \
-p 10022:22 \
--name ${serverName} \
--volume /var/lib/docker/volumes/gitlab-data/etc:/etc/gitlab \
--volume /var/lib/docker/volumes/gitlab-data/log:/var/log/gitlab \
--volume /var/lib/docker/volumes/gitlab-data/data:/var/opt/gitlab \
-v /etc/localtime:/etc/localtime \
--restart=unless-stopped \
${imageName}
}
runningCount=`docker ps -f status=running -f status=restarting | grep -w ${serverName} |wc -l`;
if [[${runningCount} > 0 ]];then
echo "docker restart 重启项目:${serverName}"
docker restart ${serverName}
exit 0
fi
serverCount=`docker ps -f status=exited -f status=created | grep -w ${serverName} |wc -l`;
# 判断是否已经启动过,且端口为默认端口
if [[${serverCount} > 0 ]];then
if [[${serverCount} > 1 ]]; then
echo "Error : 查找到多个 ${serverName} 容器,请手动启动"
exit 1
else
echo "docker start 启动项目:${serverName}"
docker start ${serverName}
fi
else
name=${imageName%%:*}
tag=${imageName##*:}
# 判断是否有该镜像
imageCount=`docker images | grep -w ${name} | wc -l`;
if [[${imageCount} > 0 ]];then
echo "docker run 第一次启动项目: ${imageName}"
runServer
else
echo "Error : 还没有该镜像"
exit 1
fi
fi
将 gitlab-docker-restart.sh
赋予执行权限:
chmod +x gitlab-docker-restart.sh
之后直接执行 gitlab-docker-restart.sh
即可完成 gitlab 的重启。
二、配置
# 修改 gitlab.rb 配置文件
$ vim /var/lib/docker/volumes/gitlab-data/etc/gitlab.rb # 编辑 gitlab.rb 文件
## GitLab NGINX
nginx['listen_port'] = 80 # gitlab nginx 端口。默认端口为:80
## GitLab Unicorn
unicorn['listen'] = 'localhost'
unicorn['port'] = 8080 #默认是 8080 端口
## GitLab URL 配置 http 协议所使用的访问地址
external_url 'http://song.local' # clone 时显示的地址,gitlab 的域名
# 配置 ssh 协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = 'song.local'
gitlab_rails['gitlab_shell_ssh_port'] = 10022
# 退出容器后,重启容器
docker restart gitlab
假如你将 gitlab 配置文件已经挂载到外部存储路径下,只要在相应目录(如这里的 /srv/gitlab/config)下修改 gitlab.rb 文件,并重启容器就可。
将容器时间和 host 在一个时区
-v /etc/localtime:/etc/localtime
三、访问
访问 http://127.0.0.1:80
,系统默认的管理员账号为 root,第一次访问 GitLab,会要求初始化管理员账号的密码。