国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用Docker部署GitLab服務(wù)并啟用HTTPS

這篇具有很好參考價值的文章主要介紹了使用Docker部署GitLab服務(wù)并啟用HTTPS。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

使用官方提供的 Docker 鏡像部署 GitLab 非常方便,相關(guān)的安裝配置文檔也非常詳細。本文主要是對一次成功的部署流程進行記錄,方便下次快捷部署。

拉取官方鏡像

官方提供了「社區(qū)版」和「企業(yè)版」兩種鏡像,這里采用「社區(qū)版」進行部署,執(zhí)行以下命令拉取最新的 Docker 鏡像。如果需要其他的鏡像標(biāo)簽,請查閱官方鏡像倉庫。

docker pull gitlab/gitlab-ce:latest

創(chuàng)建掛載目錄

在宿主機創(chuàng)建以下目錄,這些目錄將在啟動 Docker 容器時進行掛載:

mkdir -p /data/gitlab/config
mkdir -p /data/gitlab/certs
mkdir -p /data/gitlab/logs
mkdir -p /data/gitlab/data

啟動容器

docker run -d --name gitlab --hostname gitlab.your_domain.com -p 443:443 -p 80:80 --restart always -v /data/gitlab/certs:/etc/gitlab/ssl -v /data/gitlab/config:/etc/gitlab -v /data/gitlab/logs:/var/log/gitlab -v /data/gitlab/data:/var/opt/gitlab --privileged=true gitlab/gitlab-ce:latest

hostname和配置文件中的external_url對應(yīng),去掉協(xié)議名稱。

由于我們使用 HTTPS 進行訪問,所以這里將 443 端口映射出來即可,不必映射 80 端口。同樣,ssh 的端口也要映射出來(如果不使用 SSH 協(xié)議進行代碼的 pull 和 push,這里就不需要映射 SSH 端口),宿主機選擇的 ssh 端口要和配置文件中gitlab_shell_ssh_port配置的端口一致。

GitLab 容器啟動可能需要幾分鐘,執(zhí)行docker logs -f 容器ID可以觀察啟動日志。

如果容器啟動失敗:提示Permission denied 。這時由于掛載的本地目錄在容器中沒有執(zhí)行權(quán)限, 解決方法是在運行容器的時候,給容器加入權(quán)限參數(shù) --privileged=true,以特權(quán)方式啟動容器 。

調(diào)整配置文件

GitLab 通過 gitlab.rb 文件進行配置,我們需要調(diào)整外部鏈接、郵件、SSL 認證等配置。

配置郵件發(fā)送服務(wù)

gitlab_rails['gitlab_email_from'] = 'gitlab@your_domain.com'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "gitlab@your_domain.com"
gitlab_rails['smtp_password'] = "your_email_password"
gitlab_rails['smtp_domain'] = "qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true

以上是騰訊企業(yè)郵箱的配置示例,部分郵箱服務(wù)商可能不支持第三方客戶端以郵箱密碼進行登錄,那么就需要去服務(wù)商處獲取別的授權(quán)密碼進行登錄。

開啟 HTTPS

external_url 'https://gitlab.you_domain.com:443'

#配置http自動跳轉(zhuǎn)到https協(xié)議的地址;
nginx['redirect_http_to_https'] = true

#80端口是容器內(nèi)的端口,如果不配置http://宿主IP:80/將不可訪問;
nginx['redirect_http_to_https_port'] = 80

# nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.you_domain.com.pem"
# nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.you_domain.com.key"

#配置監(jiān)聽容器內(nèi)的443端口,注意不是外面主機的443端口
nginx['listen_port'] = 443

nginx['proxy_set_headers'] = {
   "Host" => "$http_host_with_default",
   "X-Real-IP" => "$remote_addr",
   "X-Forwarded-For" => "$proxy_add_x_forwarded_for",
   "X-Forwarded-Proto" => "https",
   "X-Forwarded-Ssl" => "on",
   "Upgrade" => "$http_upgrade",
   "Connection" => "$connection_upgrade"
}

nginx['custom_error_pages'] = {
   '404' => {
   'title' => 'Example title',
   'header' => 'Example header',
   'message' => 'Example message'
   }
}

external_url會影響 GitLab 中創(chuàng)建項目的 URL 地址,如果不配置,則默認使用容器的 hostname,即容器 ID,這里需要配置為 GitLab 服務(wù)的域名。

ssl_certificatessl_certificate_key用于配置 HTTPS 所需要的證書,這兩份證書需要在啟動 GitLab 時掛載到容器中。

注意,如果external_url使用 https:

方案一、由gitlab自動生成證書掛載進來

方案二、申請免費的SSL,復(fù)制到/data/gitlab/certs掛載目錄下,使用openssl命令生成.crt文件。

openssl x509 -outform pem -in gitlab.you_domain.com.pem -out gitlab.you_domain.com.crt 

SSH 配置

gitlab_rails['gitlab_ssh_host'] = 'gitlab.you_domain.com'
gitlab_rails['gitlab_shell_ssh_port'] = 1022

gitlab_shell_ssh_port這里的端口會影響 GitLab 項目的 ssh 地址,所以直接配置宿主機映射的端口。

接下來可以執(zhí)行以下命令使配置變更生效:

 docker exec -it my-gitlab gitlab-ctl reconfigure

至此可以通過,一下測試地址訪問。

https://gitlab.you_domain.com:443/

宿主機 Nginx 配置

這部分配置是可選的,主要是對 GitLab 服務(wù)做一個反向代理,以下是配置示例,都是非?;A(chǔ)的 HTTPS Server 配置,就不再贅述了。

server {
    listen 80;
    server_name gitlab.you_domain.com;
    rewrite ^(.*) https://$host$1 permanent;
}

server {
    listen 443 ssl;
    server_name gitlab.you_domain.com;

    ssl on;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;

    ssl_certificate /home/admin/.acme.sh/your_domain.com/fullchain.cer;
    ssl_certificate_key /home/admin/.acme.sh/your_domain.com/your_domain.com.key;
    ssl_trusted_certificate /home/admin/.acme.sh/your_domain.com/ca.cer;

    ssl_dhparam /home/admin/.acme.sh/dhparam.pem;
    ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';

    # 將請求代理到 GitLab 容器
    location / {
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass https://127.0.0.1:443;
    }

    # 對 GitLab 的靜態(tài)資源訪問也要做轉(zhuǎn)發(fā),否則頁面樣式可能出錯
    location ~ .*.(js|css|png)$ {
	    proxy_pass https://127.0.0.1:443;
    }
}

常見問題

Whoops, GitLab is taking too much time to respond

原因可能是機器內(nèi)存太小,gitlab最小內(nèi)存需要2G,建議加大機器內(nèi)存。

替代方案是增加交換分區(qū)的大小,具體如下:

1、檢查現(xiàn)有的交換空間大?。?/p>

free -m

2、添加交換文件,并設(shè)置大小為 2G:

dd if=/dev/zero of=/swapfile bs=1024 count=2048000

3、創(chuàng)建交換空間:

mkswap /swapfile

4、修改 mem.swap 文件權(quán)限:

chmod 0600 /swapfile

5、啟用新增加的 2G 交換空間:

swapon /swapfile

6、修改 /etc/fstab 文件,添加如下一行:文章來源地址http://www.zghlxwxcb.cn/news/detail-769001.html

/swapfile       swap           swap   defaults     0 0

到了這里,關(guān)于使用Docker部署GitLab服務(wù)并啟用HTTPS的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 記錄使用gitlab實現(xiàn)Docker自動化部署

    記錄使用gitlab實現(xiàn)Docker自動化部署

    目錄 前言 一、gitlab-runner docker安裝 二、gitlab-runner的注冊與使用 1.注冊 2. .gitlab-ci.yml 腳本編寫 總結(jié) 前面搭建了gitlab與harbor ,現(xiàn)在就使用它們來實現(xiàn)自動化docker部署。所謂自動化部署,就是提交代碼到指定分支時自動觸發(fā)預(yù)先寫好的腳本,來實現(xiàn)打包,推送鏡像。想要實現(xiàn)這

    2023年04月11日
    瀏覽(15)
  • 使用阿里云服務(wù)器部署和使用GitLab

    使用阿里云服務(wù)器部署和使用GitLab

    本文阿里云百科分享使用阿里云服務(wù)器部署和使用GitLab,GitLab是Ruby開發(fā)的自托管的Git項目倉庫,可通過Web界面訪問公開的或者私人的項目。本教程介紹如何部署和使用GitLab。 目錄 準(zhǔn)備工作 部署GitLab環(huán)境 使用GitLab 登錄GitLab 生成密鑰對文件并獲取公鑰 創(chuàng)建項目 使用GitLab 部署

    2024年02月13日
    瀏覽(26)
  • Vmware虛擬機搭建 K8S ingress Jenkins Gitlab Harbor Docker 一鍵部署SpringCloud微服務(wù)

    Vmware虛擬機搭建 K8S ingress Jenkins Gitlab Harbor Docker 一鍵部署SpringCloud微服務(wù)

    本文主要基于Kubernetes1.22.2和Linux操作系統(tǒng)Ubuntu 20.04.6。 操作系統(tǒng) 主機名 IP地址 進程 功能 Ubuntu 20.04.6 k8s-master 192.168.189.128 docker,kube-apiserver,etcd,kube-scheduler,kube-controller-manager,kubelet,kube-proxy,coredns,calico 主節(jié)點 Ubuntu 20.04.6 k8s-node1 192.168.189.129 docker,kubelet,kube-proxy,c

    2024年02月03日
    瀏覽(43)
  • Gitlab基礎(chǔ)篇: Gitlab docker 安裝部署、Gitlab 設(shè)置賬號密碼

    Gitlab基礎(chǔ)篇: Gitlab docker 安裝部署、Gitlab 設(shè)置賬號密碼

    安裝docker gitlab前確保docker環(huán)境,如果沒有搭建docker請查閱“Linux docker 安裝文檔” docker 下載 gitlab容器 參數(shù)解析 命令 參數(shù) 解析 -name gitlab 容器的名稱 -p 18081:80 80端口為gitlab可視化操作服務(wù)的默認訪問端口,防止占用將80更改為18081 -p 10022:22 22為ssh 端口,因為沖突所以改成10

    2024年01月21日
    瀏覽(25)
  • docker部署gitlab CI/CD (一)第一篇:部署gitlab及漢化

    docker部署gitlab CI/CD (一)第一篇:部署gitlab及漢化

    網(wǎng)上很多類似教程,但多少有點夾帶私貨,有的竟然拉取的第三方鏡像,而且很多都要修改配置文件,完全不知道是為什么,于是結(jié)合其他人的博客和官方文檔, 知其然也要知其所以然,于2023年4月17日寫下這篇。 官方文檔: https://docs.gitlab.com/ee/install/docker.html 主要參考博客

    2023年04月17日
    瀏覽(33)
  • Docker部署Gitlab

    Docker部署Gitlab

    docker 19.03.13 初始化配置文件 80端口部署方式(二選一) 非80端口需要的部署方式(二選一) 第一步:啟動docker 第二步 修改 gitlab.rb文件 xxx.xxx.xxx.xxx 為 外網(wǎng)訪問IP vim /home/feature/docker/software/gitlab/config/gitlab.rb 第三步 修改 gitlab.yml vim /home/feature/docker/software/gitlab/data/gitlab-rails/

    2024年02月14日
    瀏覽(19)
  • Docker部署配置Gitlab

    Docker部署配置Gitlab

    參考1:Gitlab 倉庫搭建(詳細版) 參考2:搭建 gitlab 私有倉庫 Gitlab 是一個用于倉庫管理系統(tǒng)的開源項目,使用 Git 作為代碼管理工具,并在此基礎(chǔ)上搭建起來的 web 服務(wù)。Gitlab有烏克蘭程序員 DmitriyZaporozhets 和 ValerySizov 開發(fā),它由 Ruby 寫成。后來,一些部分用 Go 語言重寫,現(xiàn)

    2024年02月05日
    瀏覽(17)
  • 一、Docker部署GitLab(詳細步驟)

    一、Docker部署GitLab(詳細步驟)

    docker安裝教程:https://qingsi.blog.csdn.net/article/details/131270071 注意:接下來的配置請在容器內(nèi)進行修改,不要在掛載到宿主機的文件上進行修改。否則可能出現(xiàn)配置更新不到容器內(nèi),或者是不能即時更新到容器內(nèi),導(dǎo)致gitlab啟動成功,但是無法訪問 修改完成之后保存退出即可,

    2024年04月09日
    瀏覽(24)
  • Gitlab服務(wù)部署及應(yīng)用

    Gitlab服務(wù)部署及應(yīng)用

    目錄 Gitlab簡介 Gitlab工作原理 Gitlab服務(wù)構(gòu)成 Gitlab環(huán)境部署 ?安裝依賴包 啟動postfix,并設(shè)置開機自啟 設(shè)置防火墻 下載安裝gitlab rpm包 修改配置文件/etc/gitlab/gitlab.rb,生產(chǎn)環(huán)境下可以根據(jù)需求修改 重新加載配置文件 ?瀏覽器登錄Gitlab輸入 http://服務(wù)器IP 打開另一臺主機 ?設(shè)置發(fā)

    2024年02月12日
    瀏覽(44)
  • 基于jenkins+gitlab+docker部署zabbix

    基于jenkins+gitlab+docker部署zabbix

    我現(xiàn)在已經(jīng)在一臺服務(wù)器上部署了jenkins和gitlab,現(xiàn)在有一個場景是需要在服務(wù)器上再部署一個zabbix,需要通過jenkins加上gitlab部署,并且要求zabbix是通過docker部署的 jenkins、gitlab已完成部署并能正常訪問,服務(wù)器docker能夠正常使用 1、創(chuàng)建Git倉庫: 在GitLab上創(chuàng)建一個新的倉庫,

    2024年04月13日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包