赞
踩
快速命令
docker pull gitlab/gitlab-ce
docker run -itd \ -p 9980:80 \ -p 9922:22 \ -v /opt/soft/docker/gitlab/etc:/etc/gitlab \ -v /opt/soft/docker/gitlab/log:/var/log/gitlab \ -v /opt/soft/docker/gitlab/opt:/var/opt/gitlab \ --restart always \ --privileged=true \ --name gitlab \ gitlab/gitlab-ce
/opt/soft/docker/gitlab/opt 是宿主机 也就是外面的机器。
这个会自动创建
-i 以交互模式运行容器,通常与 -t 同时使用命令解释 -t 为容器重新分配一个伪输入终端,通常与 -i 同时使用 -d 后台运行容器,并返回容器ID -p 9980:80将容器内80端口映射至宿主机9980端口,这是访问gitlab的端口 -p 9922:22将容器内22端口映射至宿主机9922端口,这是访问ssh的端口 -v /opt/soft/docker/gitlab/etc:/etc/gitlab将容器/etc/gitlab目录挂载到宿主机/opt/soft/docker/gitlab/etc目录下,若宿主机内此目录不存在将会自动创建,其他两个挂载同这个一样 --restart always容器自启动 --privileged=true让容器获取宿主机root权限 --name gitlab设置容器名称为gitlab gitlab/gitlab-ce镜像的名称,这里也可以写镜像ID
注意:这里是把4.3放到4.2后面配置,然后再操作4.4。原因是希望在4.4中统一修改端口,如果4.3和4.2分开配置,会容易遗漏修改4.4中的端口,从而在clone项目时,导致链接中没有端口的bug。
先开放gitlab使用的linux端口。
firewall-cmd --zone=public --add-port=9980/tcp --permanent
firewall-cmd --zone=public --add-port=9922/tcp --permanent
云服务器 需要放开9980 9922
firewall-cmd --reload
firewall-cmd --list-port
以下操作均在容器中执行
进入容器
docker exec -it gitlab /bin/bash
修改配置文件
vi /etc/gitlab/gitlab.rb
在开头加入以下内容:
公网ip: 你的ip
111.231.74.191
**注意:**external_url 的地址后面不能加端口,否则即使部署成功也无法访问。
#gitlab访问地址,可以写域名。如果端口不写的话默认为80端口
external_url 'http://111.231.74.191'
#ssh主机ip
gitlab_rails['gitlab_ssh_host'] = '111.231.74.191'
#ssh连接端口
gitlab_rails['gitlab_shell_ssh_port'] = 9922
#时区
gitlab_rails['time_zone'] = 'Asia/Shanghai'
#开启备份功能
gitlab_rails['manage_backup_path'] = true
#备份文件的权限
gitlab_rails['backup_archive_permissions'] = 0644
#保存备份 60 天
gitlab_rails['backup_keep_time'] = 5184000
邮箱是企业进行工作中的通知,交互必不可少的部分,gitlab同样支持邮箱的配置,方便对一些操作有邮件的提醒。
开启smtp功能
注意事项:一定要搞清楚邮件服务的端口到底是哪个,不然配置完后测试邮件发送会提示链接超时,也可以在docker部署的gitlab容器内
telnet IP 端口 来判断邮箱的地址和端口是否正确,如果正确则不报错,后面也会给出具体的配置。
进入gitlab容器内部修改配置
docker exec -it gitlab /bin/bash
建议先在器内 telnet IP 端口 来确定邮件的SMTP服务能否链接上。
修改配置文件
vi /etc/gitlab/gitlab.rb
QQ邮箱:【注意端口】推荐,因为163邮箱可能会出现telnet端口不通的问题。
经测试,QQ的英文邮箱和数字邮箱可以共用同一个授权码。
gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = 'smtp.qq.com' gitlab_rails['smtp_port'] = 587 gitlab_rails['smtp_user_name'] = '发件邮箱' gitlab_rails['smtp_password'] = '第三方登录授权码' gitlab_rails['smtp_domain'] = 'smtp.qq.com' gitlab_rails['smtp_authentication'] = 'login' gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_tls'] = false gitlab_rails['smtp_pool'] = '发件邮箱' gitlab_rails['gitlab_email_enabled'] = true gitlab_rails['gitlab_email_from'] = '发件邮箱' # gitlab_rails['gitlab_email_display_name'] = 'Example'
163邮箱:【注意端口】
gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = 'smtp.163.com' gitlab_rails['smtp_port'] = 25 gitlab_rails['smtp_user_name'] = '发件邮箱' gitlab_rails['smtp_password'] = '第三方登录授权码' gitlab_rails['smtp_domain'] = 'smtp.163.com' gitlab_rails['smtp_authentication'] = 'login' gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_tls'] = false gitlab_rails['smtp_pool'] = '发件邮箱' gitlab_rails['gitlab_email_enabled'] = true gitlab_rails['gitlab_email_from'] = '发件邮箱' # gitlab_rails['gitlab_email_display_name'] = 'Example'
以上两个厂商的邮箱配置已验证,可用。
673170360@qq.com
‘gitlab的密码’
输入命令:telnet smtp.qq.com 587
220 newxmesmtplogicsvrszb9-0.qq.com XMail Esmtp QQ Mail Server.
111.231.74.191 是我的公网ip 要换成你的 #gitlab访问地址,可以写域名。如果端口不写的话默认为80端口 external_url 'http://111.231.74.191' #ssh主机ip gitlab_rails['gitlab_ssh_host'] = '111.231.74.191' #ssh连接端口 gitlab_rails['gitlab_shell_ssh_port'] = 9922 #时区 gitlab_rails['time_zone'] = 'Asia/Shanghai' #开启备份功能 gitlab_rails['manage_backup_path'] = true #备份文件的权限 gitlab_rails['backup_archive_permissions'] = 0644 #保存备份 60 天 gitlab_rails['backup_keep_time'] = 5184000 gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = 'smtp.qq.com' gitlab_rails['smtp_port'] = 587 gitlab_rails['smtp_user_name'] = '你的邮箱(需要修改)' gitlab_rails['smtp_password'] = '你的邮箱授权(需要修改)' gitlab_rails['smtp_domain'] = 'smtp.qq.com' gitlab_rails['smtp_authentication'] = 'login' gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_tls'] = false gitlab_rails['smtp_pool'] = 你的邮箱(需要修改)' gitlab_rails['gitlab_email_enabled'] = true gitlab_rails['gitlab_email_from'] = '你的邮箱(需要修改)' # gitlab_rails['gitlab_email_display_name'] = '君临'
在4.2、4.3都配置完毕后再执行4.4的步骤。
让配置生效
gitlab-ctl reconfigure
输入命令后,会执行一系列操作,直到最后出现:gitlab Reconfigured!
修改gitlab.yaml 文件
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
默认为80端口,修改端口号为之前配置的端口
重启gitlab服务
gitlab-ctl restart
测试执行gitlab-rails console进入控制台交互界面,然后在控制台提示符后输入下面内容发送一封测试邮件,测试完成后exit()退出。
gitlab-rails console
# 示例
Notify.test_email('你的邮箱地址', 'GitLab email', 'Hello world').deliver_now
退出容器
exit;
查找管理员(root)的密码,进入容器
docker exec -it gitlab /bin/bash
查看初始密码
cat /etc/gitlab/initial_root_password
你的密码*
登录
111.231.74.191:9980
root
***你的密码****
账号:root
密码:【上一步查看的密码】
修改超级管理员的密码
tips:自己记录一下。不用管
http://111.231.74.191:9980/projects/new#blank_project
111.231.74.191
参考
http://t.csdnimg.cn/9YTZz
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。