基于docker的GitLab搭建教程

获取GitLab的docker镜像

途径有二:

1)下载GitLab的docker镜像,再手动汉化

· 上docker官方仓库查看GitLab版本

地址:https://hub.docker.com/r/gitlab/gitlab-ce/

· 拉取镜像(好像不能直接下载zip包)

 docker pull gitlab/gitlab-ce: 11.6.0-rc9.ce.0 #11.6.0-rc9.ce.0为Tag

2)下载GitLab的中文版镜像

·地址:https://github.com/beginor/docker-gitlab-ce

选择目标版本,下载zip包,传送到目的服务器,导入镜像

或者

直接拉取镜像:docker pull beginor/gitlab-ce:11.1.4-ce.0

到目前为止,gitlab镜像已经存在于目的服务器的docker里,可查看已存在镜像

docker images

运行镜像

  1. 通常会将 GitLab 的配置 (etc) 、 日志 (log) 、数据 (data) 放到容器之外, 便于日后升级, 因此请先准备这三个目录。

与正式库一致

mkdir -p /home/dgd/gitlab/config

mkdir -p /home/dgd/gitlab/log

mkdir -p /home/dgd/gitlab/data
  1. 运行GitLab镜像
docker run --name gitlab -d \ #命名生成的容器为gitlab,-d在后台运行

 --hostname IP \ #设置容器的主机名,可作为用来访问服务器的URL地址,建议不设置,后面也有配置URL的步骤

 -p 443:443 -p 10085:22 -p 8080:80 \

 --restart always \

 --volume /home/dgd/gitlab/config:/etc/gitlab \

 --volume /home/dgd/gitlab/log:/var/log/gitlab \

 --volume /home/dgd/gitlab/data:/var/opt/gitlab \

gitlab-11.1.4:11.1.4

#-p 用来指定docker容器映射宿主机的服务端口。80是web访问用的端口,22是ssh协议用的端口。设定通过访问服务器的8080端口可以登录GitLab网页,推拉代码则需要访问10085端口

#--volume –volume 用来指定挂载目录。将config配置目录、data数据目录、logs日志目录挂载到宿主机上,即宿主机的/home/dgd/gitlab/config下的文件,和进入容器,切换到目录/etc/gitlab下的文件,两者是一样的

# gitlab-11.1.4:11.1.4 应该是Repository:Tag

修改配置文件

修改配置文件gitlab.rb(宿主机上的路径为:/home/dgd/gitlab/config/gitlab.rb)里面的参数,建议在最后面直接添加,不然修改或者查看很麻烦

1)修改URL地址

# 配置http协议所使用的访问地址

external_url 'http://10.33.123.54'#写域名,就是用域名访问

# 配置ssh协议所使用的访问地址和端口 #设置拉取代码采取的地址和端口

gitlab_rails['gitlab_ssh_host'] = '10.33.123.54'

gitlab_rails['gitlab_shell_ssh_port'] = 10085

2)修改邮件配置

gitlab_rails['smtp_enable'] = true

 gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"

#说明用的邮箱是QQ企业邮箱

 gitlab_rails['smtp_port'] = 465 #采用465端口,登录发信邮箱查看设置

 gitlab_rails['smtp_user_name'] = "yinglin@digitalg"

 gitlab_rails['smtp_password'] = "USEvfvvxd" #授权码,并非邮箱密码

 gitlab_rails['smtp_domain'] = "exmail.qq.com"

 gitlab_rails['smtp_authentication'] = "login"

 gitlab_rails['smtp_enable_starttls_auto'] = true

 gitlab_rails['smtp_tls'] =true

——————————————————

最好设置收信人,并且发件人和上面的账号要一致!!!,不然会发信会报错,试过了!我还想实际邮箱和外在邮箱不一样。。。

 gitlab_rails['gitlab_email_from'] = 'yinglin@digitalg.cn'

user["git_user_email"] = "gitlab@example.com"

3)进入GitLab容器

docker exec -it gitlab /bin/bash

4)

更新配置 gitlab-ctl reconfigure

重启服务 gitlab-ctl restart

5) 测试邮件服务是否正常

gitlab-rails console 

Notify.test_email("XXX@XXX.XX","title","gitlab").deliver_now

如果发信失败,根据错误码百度

6)exit 退出容器

至此,GitLab可以正常使用,GitLab汉化详见另外的文档
https://www.jianshu.com/p/f3cce3e362a4

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。