1、docker search gitlab 搜索结果第一条
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
gitlab/gitlab-ce GitLab Community Edition docker image based … 2441
2、docker pull gitlab/gitlab-ce
拉取镜像时由于网络原因经常失败,可以用镜像加速,编辑以下内容
vim /etc/docker/daemon.json
{
"registry-mirrors": ["http://hub-mirror.c.163.com","http://f1361db2.m.daocloud.io",
"https://registry.docker-cn.com", "https://docker.mirrors.ustc.edu.cn","https://kfwkfulq.mirror.aliyuncs.com"]
}
3、设置映射目录
cd /root
mkdir /gitlab
cd gitlab
mkdir etc logs data
4、编辑启动脚本
vim run_gitlab.sh
加入以下内容
GITLAB_HOME=/root/gitlab
docker run -d \
--hostname gitlab \
--publish 8443:443 --publish 8088:80 --publish 2222:22 \ #映射各端口
--name gitlab \
--restart always \
--volume $GITLAB_HOME/etc:/etc/gitlab \
--volume $GITLAB_HOME/logs:/var/log/gitlab \
--volume $GITLAB_HOME/data:/var/opt/gitlab \
gitlab/gitlab-ce
5、配置邮箱和各端口号
先启动服务 chmod u+x gitlab_run.sh
./gitlab_run.sh
此时会在 /root/gitlab/ 下各文件夹内生成各种文件
cd /root/gitlab
vim etc/gitlab.rb
加入以下内容开启web服务, 在浏览器访问该ip http://ip:8088 前面映射的端口,要确保该端口没被占用
external_url 'http://ip or domain'
加入以下内容配置邮箱,以下为163邮箱,
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "xxx@163.com"
gitlab_rails['smtp_password'] = "password“ #此处不是登陆163邮箱的密码,是163邮箱授权第三方登录设置的密码。要开启此功能,需要到163邮箱去设置
gitlab_rails['smtp_domain'] = "163.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = false
gitlab_rails['smtp_openssl_verify_mode'] = "peer"
gitlab_rails['gitlab_email_from'] = "xxx@163.com"
user["git_user_email"] = "xxx@163.com"
设置以下内容为了git pull, git push 时不用密码
使用ssh 时默认端口 一般为22, 上面为了不妨碍主机端口,并没有把22映射到gitlab容器的22 端口上,如果不做以下更改,git 操作时,所有ssh 操作都需要密码,且密码总不对
在文件中加入以下内容
gitlab_rails['gitlab_shell_ssh_port'] = 2222 #前面映射的端口
设置该端口后,所有git 的ssh 操作会自动带上 2222,
6、重启gitlab
docker container restart gitlab
7、浏览器访问 http://ip:8088,
首次访问会让设置密码,用户名为root
8、其他配置待加