最近在学习自动化部署的一些内容,自动化部署,涉及到的内容有Docker、Jenkins、Gitlab等内容,今天经过docker玩了一遍gitlab,下面是一些心得git
Docker安装服务实在是太方便,咱们经过docker来安装Gitlab,运行以下命令查看Gitlab的镜像文件docker
搜索镜像shell
sudo docker search gitlab
看到镜像有不少,若是OFFICIAL这一项下面是[OK] 表示为官方的镜像,我这里使用第四个,由于这是中文版的,鄙人英语很差,仍是看中文版的比较舒服。
其实,中文版也就是安装了一个语言包而已,有兴趣能够本身安装第一个,而后再手动配置中文包vim
下载镜像安全
sudo docker pull twang2218/gitlab-ce-zh
启动服务bash
docker run -d -p 8443:443 -p 8090:80 -p 8022:22 --restart always --name gitlab -v /usr/local/gitlab/etc:/etc/gitlab -v /usr/local/gitlab/log:/var/log/gitlab -v /usr/local/gitlab/data:/var/opt/gitlab --privileged=true twang2218/gitlab-ce-zh
查看启动状况服务器
// 添加-a 参数,把启动的,没有启动的都列出来 sudo docker ps
配置的时候,咱们须要进入容器当中配置,若是直接修改咱们映射到容器外部的配置文件,总会出现一些奇怪的问题,为了不出现问题,尽可能按照以下操做流程进行相关的配置和测试dom
第一步:进入容器ssh
sudo docker exec -it gitlab bash
第二步:修改gitlab.rb文件gitlab
sudo cd /etc/gitlab sudo vim gitlab.rb
第三步:修改IP和端口
该部份内容的修改是为了解决,咱们再gitlab建立项目的时候,项目访问地址是容器id的问题
// 可使用/ 来查找关键字,找到指定的内容,而后经过n来下一个查找 // 在gitlab建立项目时候http地址的host(不用添加端口) external_url 'http://xx.xx.xx.xx' // 在gitlab建立项目时候ssh地址的host gitlab_rails['gitlab_ssh_host'] = 'xx.xx.xx.xx'(不用添加端口) # docker run 的时候咱们把22端口映射为外部的8022了,这里修改下 gitlab_rails['gitlab_shell_ssh_port'] = 8022
第四步:修改邮箱
在gitlab.rb文件的最后添加以下代码
# 是否启用 gitlab_rails['smtp_enable'] = true # SMTP服务的地址 gitlab_rails['smtp_address'] = "smtp.qq.com" # 端口 gitlab_rails['smtp_port'] = 465 # 你的QQ邮箱(发送帐号) gitlab_rails['smtp_user_name'] = "958317640@qq.com" # 受权码 gitlab_rails['smtp_password'] = "********" # 域名 gitlab_rails['smtp_domain'] = "smtp.qq.com" # 登陆验证 gitlab_rails['smtp_authentication'] = "login" # 使用了465端口,就须要配置下面三项 gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_tls'] = true gitlab_rails['smtp_openssl_verify_mode'] = 'none' # 你的QQ邮箱(发送帐号) gitlab_rails['gitlab_email_from'] = '958317640@qq.com'
第五步:应用配置
sudo gitlab-ctl reconfigure
第5.1步:修改port
修改gitlab.yml文件
// 文件路径 /opt/gitlab/embedded/service/gitlab-rails/config sudo cd /opt/gitlab/embedded/service/gitlab-rails/config vim gitlab.yml // 修改port 为8090
第六步:重启服务
sudo gitlab-ctl restart
第七步:验证邮箱服务
// 在容器中进入命令行 sudo gitlab-rails console // 测试邮件发送 sudo Notify.test_email("xxx@163.com","title","gitlab").deliver_now // 退出命令行 sudo exit // 退出容器 sudo exit
启动
// 第一次启动 // 这部分命令不能直接copy,格式化只是为了方便看 docker run -d -p 8443:443 -p 8090:80 -p 8022:22 --restart always --name gitlab -v /usr/local/gitlab/etc:/etc/gitlab -v /usr/local/gitlab/log:/var/log/gitlab -v /usr/local/gitlab/data:/var/opt/gitlab --privileged=true twang2218/gitlab-ce-zh // 若是中止了,用start启动 docker start <ID || Name>
经过--name配置了gitlab的名字以后,咱们后续能够经过这个name对容器进行相关的启动和中止操做
容器外中止
sudo docker stop gitlab // 这里的gitlab 就是咱们上一步docker run 当中使用--name 配置的名字
容器外重启
sudo docker restart gitlab
进入容器命令行
sudo docker exec -it gitlab bash
容器中应用配置
sudo gitlab-ctl reconfigure
容器中重启服务
sudo gitlab-ctl restart
服务地址
如下是个人gitlab服务地址,仅供测试使用,后面可能会删除,你们不要使用哈
http://118.31.225.185:8090
若是您使用的是阿里云服务器,须要在安全组里面把你想要对外开放的端口打开,不然是没法访问的
鄙人第一次捣鼓这个,里面的有些概念和配置也许说的不太对,有比较懂得朋友能够指导一二,必定感激。