1、查找公共镜像 docker search gitlab 这里采用twang2218/gitlab-ce-zh镜像,支持中文较好: docker pull twang2218/gitlab-ce-zh
2、生成容器,注意把配置文件、日志、数据等内容配置在外部券上,这里是/home/gitlab,你也可以自行设定: docker run -it \ -v /home/gitlab/config/:/etc/gitlab \ -v /home/gitlab/logs/:/var/log/gitlab \ -v /home/gitlab/data/:/var/opt/gitlab \ --name gitlab twang2218/gitlab-ce-zh
gitlab容器使用了22端口,因此注意不要和sshd的设置冲突,建议先把sshd的默认端口22改成其它的端口号。
3、修改配置文件 config/gitlab.rb 配置邮箱 gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.exmail.qq.com" gitlab_rails['smtp_port'] = 465 gitlab_rails['smtp_user_name'] = "gerrit@tecon.cn" gitlab_rails['smtp_password'] = "*******" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_tls'] = true gitlab_rails['gitlab_email_from'] = 'gerrit@tecon.cn'
配置外部访问URL external_url "http://git.cvbs.cn" 4、修改反向代理设置放开22和80端口 使用 inspect指令查看容器的IP docker inspect gitlab |grep IP "IPAddress": "172.17.0.3", 修改nginx的配置文件,这里反向代理使用的是nginx stream{ #stream模块,要和http模块同级 upstream ssh { server 172.17.0.3:22; } server { listen 22; proxy_pass ssh; }
server { listen 80; server_name git.abcd.cn; #这里配置你的域名 charset utf-8; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location / { proxy_pass http://172.17.0.3; } }
注意:系统里有多个容器时,容器重新启动后IP地址会根据每个容器启动的顺序不同重新分配IP地址,因此系统重启后需要检查反向代理里配置的IP和实际容器的IP向对应。
5、重启gitlab docker restart gitlab 也可以在容器里 gitlab-ctl reconfigure
第一次打开主页会要求设置管理员密码,默认管理员是root |