最近在學習自動化部署的一些內容,自動化部署,涉及到的內容有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
若是您使用的是阿里雲服務器,須要在安全組裏面把你想要對外開放的端口打開,不然是沒法訪問的
鄙人第一次搗鼓這個,裏面的有些概念和配置也許說的不太對,有比較懂得朋友能夠指導一二,必定感激。