GitLab是一个Git的代码托管工具,有免费的社区版允许我们在本地搭建代码托管网站,也有付费的企业版网站,能够在线托管代码。传统方式是手动下载Gitlab的软件包,然后搭建相关运行环境。不过这种方式非常麻烦,而且如果要更换机器所有配置工作又得重来一边,更好的办法就是使用现在非常流行的Docker。
第一步:搜索 GitLab
docker search gitlab
第二步:下载镜像
docker pull gitlab
第三步:创建宿主文件夹
mkdir -p /docker/gitlab/config
mkdir -p /docker/gitlab/logs
mkdir -p /docker/gitlab/data
第四步:创建并运行镜像
docker run -d --hostname 10.211.55.33 -p 10443:443 -p 10080:80 -p 10022:22 -p 10090:9090 --name gitlab10080 --restart always -v /docker/gitlab/config:/etc/gitlab -v /docker/gitlab/logs:/var/log/gitlab -v /docker/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:latest
docker run -d --hostname 10.211.55.33 \ # 指定容器域名,未知功能:创建镜像仓库的时候使用到
-p 8443:443 \ # 将容器内443端口映射到主机8443,提供https服务
-p 8080:80 \ # 将容器内80端口映射到主机8080,提供http服务
-p 2222:22 \ # 将容器内22端口映射到主机2222,提供ssh服务
-p 9090:9090 \ # 将容器内9090端口映射到主机9090,提供prometheus服务
--name gitlab \ # 指定容器名称
--restart always \ # 容器退出时,自动重启
-v /docker/gitlab/config:/etc/gitlab \ # 将本地/home/gitlab/config挂载到容器内/etc/gitlab
-v /docker/gitlab/logs:/var/log/gitlab \ # 将本地/home/gitlab/logs挂载到容器内/var/log/gitlab
-v /docker/gitlab/data:/var/opt/gitlab \ # 将本地/home/gitlab/data挂载到容器内/var/opt/gitlab
gitlab/gitlab-ce:latest
第五步:修改配置
vim /docker/gitlab/config/gitlab.rb
修改一下内容:
# 配置http协议所使用的访问地址
external_url 'http://10.211.55.33'
# 配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = '10.211.55.33'
gitlab_rails['gitlab_shell_ssh_port'] = 10022
# 这里以新浪的邮箱为例配置smtp服务器
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "it_feri"
gitlab_rails['smtp_password'] = "qfjava666"
gitlab_rails['smtp_domain'] = "163.com"
gitlab_rails['smtp_authentication'] = :login
gitlab_rails['smtp_enable_starttls_auto'] = true
# 还有个需要注意的地方是指定发送邮件所用的邮箱,这个要和上面配置的邮箱一致
gitlab_rails['gitlab_email_from'] = 'it_feri@163.com'
重启
docker exec -it gitlab bash
gitlab-ctl reconfigure
第六步:测试
浏览器输入:10.211.55.33:10080/
第一次需要设置管理员的密码,至少8位