成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

使用docker搭建gitlab環(huán)境

Tikitoo / 2512人閱讀

摘要:服務(wù)的依賴實(shí)現(xiàn)解耦,有多個(gè)服務(wù)依賴同一個(gè),其中一個(gè)需要重啟,而導(dǎo)致其他服務(wù)中斷最重要的原因我想試試閑話少說(shuō)了。。。拉取鏡像注意如果沒(méi)有指定對(duì)應(yīng)的版本,默認(rèn)會(huì)拉取版本經(jīng)過(guò)漫長(zhǎng)的等待。。。也可能會(huì)出現(xiàn)莫名其妙的問(wèn)題。。。

docker搭建gitlab 構(gòu)想:
通過(guò) docker 容器技術(shù),在centos7系統(tǒng)下,使用docker鏡像,安裝gitlab,并將gitlabhttp,https,ssh端口映射到其他端口;在宿主機(jī)中裝入nginx,通過(guò)nginx反向代理技術(shù)訪問(wèn)宿主機(jī)中的容器;
至于為什么要這樣折騰嘛。。。(個(gè)人看法)

不同的服務(wù)依賴的環(huán)境各有差異

當(dāng)服務(wù)需要遷移的時(shí)候,很多環(huán)境需要重新搭建其實(shí)也是挺崩潰的,通過(guò)容器技術(shù)可以更快的實(shí)現(xiàn)遷移

不同的服務(wù)對(duì)宿主機(jī)的性能是有損耗的,通過(guò)容器可以更好的控制和監(jiān)管(不會(huì)出現(xiàn)一個(gè)服務(wù)跑掛了一臺(tái)機(jī)器。。。)

服務(wù)的依賴實(shí)現(xiàn)解耦,(eg:有多個(gè)服務(wù)依賴同一個(gè)nginx,其中一個(gè)需要重啟nginx,而導(dǎo)致其他服務(wù)中斷)

最重要的原因(我想試試....~O(∩_∩)O~)

閑話少說(shuō)了。。。開(kāi)始擼。。。(docker的安裝基本操作就不在這里多說(shuō)了)有需要的小伙伴可以看下:

docker簡(jiǎn)單入門(mén)

docker入門(mén)到實(shí)踐

1.拉取gitlab鏡像 1.1.官網(wǎng)找到需要的鏡像

Docker Hub

在官網(wǎng)我們可以找到各種各樣我們需要的鏡像,通過(guò)搜索可以找到gitlab鏡像。

1.2.拉取gitlab鏡像
docker pull gitlab/gitlab-ce

注意:如果沒(méi)有指定對(duì)應(yīng)的版本,默認(rèn)會(huì)拉取 latest版本

經(jīng)過(guò)漫長(zhǎng)的等待。。。

通過(guò)docker images 命令看到gitlab鏡像證明你已經(jīng)pull完了

[root@localhost ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
gitlab/gitlab-ce    latest              5d8ab6b06918        4 days ago          1.43GB
2.run容器

運(yùn)行:

docker run --detach --hostname gitlab.xxx.com --publish 444:443 --publish 81:80 --publish 23:22 --name gitlab --restart always --volume /srv/gitlab/config:/etc/gitlab --volume /srv/gitlab/logs:/var/log/gitlab --volume /srv/gitlab/data:/var/opt/gitlab 5d8ab6b06918

--hostname :指定容器中綁定的域名,會(huì)在創(chuàng)建鏡像倉(cāng)庫(kù)的時(shí)候使用到,這里綁定gitlab.xxx.com

--publish:端口映射;容器內(nèi)的443,80,22端口分別映射到宿主機(jī)的444,81,23端口

--volume :掛載數(shù)據(jù)卷,映射到容器中去的容器外部存儲(chǔ)空間

5d8ab6b06918 :鏡像的ID

數(shù)據(jù)存儲(chǔ)地方

當(dāng)?shù)氐奈恢?/th> 容器的位置 作用
/srv/gitlab/config /etc/gitlab 用于存儲(chǔ)GitLab配置文件
/srv/gitlab/logs /var/log/gitlab 用于存儲(chǔ)日志
/srv/gitlab/data /var/opt/gitlab 用于存儲(chǔ)應(yīng)用數(shù)據(jù)

通過(guò)docker ps 命令看到gitlab容器證明你已經(jīng)運(yùn)行成功了

[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                    PORTS                                                          NAMES
9e12ae220c14        5d8ab6b06918        "/assets/wrapper"   13 minutes ago      Up 13 minutes (healthy)   0.0.0.0:23->22/tcp, 0.0.0.0:81->80/tcp, 0.0.0.0:444->443/tcp   gitlab
3.配置GitLab

上面的容器使用的是官方Omnibus GitLab軟件包,所有的配置都在唯一的配置文件 /etc/gitlab/gitlab.rb

當(dāng)然我們也可以進(jìn)入容器內(nèi)部通過(guò)shell會(huì)話進(jìn)行相關(guān)操作

docker exec -it gitlab /bin/bash
3.1 SMTP Setting

GitLab的使用過(guò)程中涉及到大量的郵件,而郵件服務(wù)你可以選擇使用Postfix,sendmai,配置SMTP服務(wù)其中一種;

Postfix還要安裝其他東西,sendmai又是比較老,相對(duì)較下SMTP配置起來(lái)會(huì)比較方便,我使用的就是SMTP;

1. 編輯/etc/gitlab/gitlab.rb文件(加到文件最后面就好了)。本來(lái)想用QQ郵箱的,但是怎奈QQ郵箱配置了半天,還是報(bào)個(gè)535(秘鑰驗(yàn)證不通過(guò)),最后放棄了選擇163
gitlab_rails["smtp_enable"] = true

gitlab_rails["smtp_address"] = "smtp.163.com"

gitlab_rails["smtp_port"] = 25

gitlab_rails["smtp_user_name"] = "[email protected]"

gitlab_rails["smtp_password"] = "password"

gitlab_rails["smtp_domain"] = "163.com"

gitlab_rails["smtp_authentication"] = :login

gitlab_rails["smtp_enable_starttls_auto"] = true

gitlab_rails["gitlab_email_from"] = "[email protected]"

user["git_user_email"] = "[email protected]"

說(shuō)明:

gitlab_rails["smtp_address"] :SMTP服務(wù)地址,不同的服務(wù)商不同

gitlab_rails["smtp_port"] :服務(wù)端口

gitlab_rails["smtp_user_name"] :用戶名,自己注冊(cè)的

gitlab_rails["smtp_password"] :客戶端授權(quán)秘鑰(獲取方式,下圖講解)

gitlab_rails["gitlab_email_from"] :發(fā)出郵件的用戶,注意跟用戶名保持一致

user["git_user_email"] :發(fā)出用戶,注意跟用戶名保持一致

獲取郵箱客戶端秘鑰:

2.如上配置完成后可以重新加載gitlab的配置
gitlab-ctl reconfigure
3.測(cè)試郵件發(fā)送
gitlab-rails console
Notify.test_email("[email protected]", "Message Subject", "Message Body").deliver_now

應(yīng)該會(huì)成功。。。

注意:

其實(shí)你在宿主機(jī)的 /srv/gitlab/config 目錄的下也能找到gitlab.rb,修改這個(gè)文件也可以;但是修改完成后,必須重啟容器

docker restart gitlab

只要容器重啟Gitlab就會(huì)自動(dòng)重新加載配置;

網(wǎng)上還有很多教程修改的 gitlab的其他配置文件實(shí)現(xiàn)SMTP的配置,我不太建議,因?yàn)槲臋n上面要求是在gitlab.rb上修改相關(guān)的配置的;其他文件修改,如果不是很熟悉可能會(huì)混亂。。。也可能會(huì)出現(xiàn)莫名其妙的問(wèn)題。。。

如果你選擇的是其他服務(wù)商的smtp,具體配置可以看文檔

SMTP settings

更多的配置可以參考官方文檔:
Omnibus GitLab

來(lái)到這里其實(shí)你已經(jīng)可以通過(guò)訪問(wèn)81端口來(lái)訪問(wèn)我們的gitlab了

4.Nginx反向代理

我的nginx是通過(guò)rpm安裝的;具體的安裝這里就不多說(shuō)了!

打開(kāi)nginx的配置文件

upstream  git{
    # 域名對(duì)應(yīng) gitlab配置中的 external_url
    # 端口對(duì)應(yīng) gitlab 配置中的 nginx["listen_port"]
    server  域名:端口;
}


server{
    listen 80;
    # 此域名是提供給最終用戶的訪問(wèn)地址
    server_name 域名;

    location / {
        # 這個(gè)大小的設(shè)置非常重要,如果 git 版本庫(kù)里面有大文件,設(shè)置的太小,文件push 會(huì)失敗,根據(jù)情況調(diào)整
        client_max_body_size 50m;

        proxy_redirect off;
        #以下確保 gitlab中項(xiàng)目的 url 是域名而不是 http://git,不可缺少
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        # 反向代理到 gitlab 內(nèi)置的 nginx
        proxy_pass http://git;
        index index.html index.htm;
    }
}
5.問(wèn)題總結(jié)
5.1 external_url 設(shè)置

external_url 是一個(gè)很重要的配置,GitLab的資源(例如:git創(chuàng)庫(kù),文件,圖片)都是基于這個(gè)URL;說(shuō)白了就是我們clone的地址;

external_url 的默認(rèn)為:

external_url "GENERATED_EXTERNAL_URL"

其實(shí)就是 http://hostname

可以把這個(gè)值改成對(duì)應(yīng)的主機(jī)名或者ip地址作為項(xiàng)目的倉(cāng)庫(kù)地址為:

// http
http://:/<組名>/<項(xiàng)目名>.git
// ssh
git@:<組名>/<項(xiàng)目名>.git

也可以直接將其改成IP

external_url "http://10.2.237.56"
5.2 修改SSH

如果是ssh端口,需要修改gitlab_shell_ssh_port。

gitlab_rails["gitlab_shell_ssh_port"] = 23

如果要修改 ssh 的域名,就需要修改 gitlab_ssh_host

gitlab_rails["gitlab_ssh_host"] = "10.2.123.123"
5.3 nginx端口

如果你修改了external_url 并加了端口,你會(huì)突然發(fā)現(xiàn),gitalweb 訪問(wèn)不了了,其實(shí)你不用慌張,因?yàn)檫@是因?yàn)?strong>nginx 默認(rèn)監(jiān)聽(tīng)的是 external_url 的端口

你只需要更改下 nginx 的端口配置就好了

# nginx["listen_port"] = nil
nginx["listen_port"] = 80

以上的配置都是在 gitlab.rb 里面改的?。?!

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/27263.html

相關(guān)文章

  • DevOps 從零開(kāi)始-倉(cāng)庫(kù)環(huán)境搭建Docker,Nginx,Nexus,Gitlab,免費(fèi)Htt

    摘要:本文章用于描述如何從零開(kāi)始進(jìn)行阿里云倉(cāng)庫(kù)的搭建,以及過(guò)程中遇到的相關(guān)問(wèn)題。涉及的內(nèi)容包括,,,,。目標(biāo)硬盤(pán)掛載阿里云額外購(gòu)買(mǎi)的硬盤(pán)服務(wù),需要僅掛載后才可以正常使用。域名代理免費(fèi)代理的域名通過(guò)阿里云域名解析暴露到外網(wǎng)。 本文章用于描述如何從零開(kāi)始進(jìn)行阿里云倉(cāng)庫(kù)的搭建,以及過(guò)程中遇到的相關(guān)問(wèn)題。涉及的內(nèi)容包括Docker,Nginx,Nexus,Gitlab,Https。 背景 需要搭建一...

    FWHeart 評(píng)論0 收藏0
  • docker gitlab環(huán)境搭建

    摘要:下搭建下載守護(hù)進(jìn)程方式啟動(dòng)運(yùn)行一個(gè)容器運(yùn)行容器運(yùn)行容器成功安裝后在瀏覽器中輸入服務(wù)器用戶名密碼進(jìn)入管理界面參考文檔 docker下gitlab 搭建 下載 docker-compose.yml wget https://raw.githubusercontent... 守護(hù)進(jìn)程方式啟動(dòng) docker-compose up -d 運(yùn)行一個(gè)PostgreSQL容器 docker run ...

    894974231 評(píng)論0 收藏0
  • Docker搭建GitLab

    摘要:二配置修改配置文件編輯文件端口。將容器時(shí)間和在一個(gè)時(shí)區(qū)三訪問(wèn)訪問(wèn),系統(tǒng)默認(rèn)的管理員賬號(hào)為,第一次訪問(wèn),會(huì)要求初始化管理員賬號(hào)的密碼。 官方中文教程:https://www.gitlab.com.cn/ins... 官方安裝鏈接:https://about.gitlab.com/install 普通方式安裝請(qǐng)見(jiàn):https://segmentfault.com/a/11... 環(huán)境...

    kumfo 評(píng)論0 收藏0
  • 搭建常見(jiàn)測(cè)試工具環(huán)境docker腳本

    摘要:整理資料的時(shí)候發(fā)現(xiàn)一些干貨,以下為搭建等測(cè)試環(huán)境的腳本,對(duì)不熟的同學(xué)可自行百度,持續(xù)更新。 整理資料的時(shí)候發(fā)現(xiàn)一些干貨,以下為搭建Jenkins、Registry、SVN、GIT、SonarQube、OpenSTF等測(cè)試環(huán)境的docker腳本,對(duì)docker不熟的同學(xué)可自行百度docker-compose,持續(xù)更新。 用法及注意事項(xiàng) 1,需要Linux,并安裝docker及docker...

    TigerChain 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

Tikitoo

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<