欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Windows Docker 安裝 Gitlab Volume權限問題解決方案

 更新時間:2019年09月25日 14:22:02   作者:Fururur  
這篇文章主要介紹了Windows Docker 安裝 Gitlab Volume權限問題解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

記錄一下 Windows10 下 Docker 安裝 Gitlab 的步驟。

Caution: We do not officially support running on Docker for Windows. There are known issues with volume permissions, and potentially other unknown issues. If you are trying to run on Docker for Windows, please see our getting help page for links to community resources (IRC, forum, etc) to seek help from other users.

首先,Gitlab 官方是不支持 Windows 下部署 Gitlab 鏡像的,所以正常的 Gitlab 服務還是部署在 Linux 上比較好。本地部署只是用于個人開發(fā)測試環(huán)境。

問題描述

其實搭建 Gitlab 本省是一件很簡單的事情,直接 pull 官方的 Gitlab 鏡像開起來就可以用了。

docker run --detach \
 --hostname gitlab.example.com \
 --publish 443:443 --publish 80:80 --publish 22: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 \
 gitlab/gitlab-ce:latest

在 Windows 下我們把 volume 配置成本地路徑運行后會出現一下錯誤:

Error executing action create on resource 'storage_directory[/var/opt/gitlab/git-data]

通過查找,這應該是權限不足,導致 Windows 下的 volume 映射存在一些問題。

解決方法

別人探索出目前可用的方法是采用 volume 數據卷掛載的形式。

首先先安裝 Docker for Windows。并在 Setting 中設置 Shared Drives,設置一會用于掛載 docker 鏡像的 volume 的磁盤。

然后初始化配置文件路徑和 volume。

mkdir D:\docker\gitlab\config
mkdir D:\docker\gitlab\backups
docker volume create gitlab-logs
docker volume create gitlab-data

然后直接創(chuàng)建一個 Container 運行就可以了。

docker run --detach `
 --name gitlab `
 --restart always `
 --hostname localhost `
 --publish 10443:443 --publish 10080:80 --publish 1022:22 `
 --volume D:\docker\gitlab\config:/etc/gitlab `
 --volume gitlab-logs:/var/log/gitlab `
 --volume gitlab-data:/var/opt/gitlab `
 gitlab/gitlab-ce

等待一段時間初始化后,就可以訪問本地的 10080 端口了,http://localhost:10080

打開后就是正常 Gitlab 的頁面,重置一下 root 的密碼就可以正常使用了。

使用 Docker-Compose 部署(推薦)

如果在運行 Docker 容器時需要配置很多的參數,顯然一遍遍輸入 docker run 會比較麻煩,這里可以采用三劍客當中的 Docker-Compose 來進行容器的管理和創(chuàng)建(安裝 docker-ce 時默認安裝)。暫時不管 Docker-Compose 的其他用法,其實就是把命令運行改成了文件運行而已。

Docker-Compose 是通過文件來創(chuàng)建 Docker Container 的。我們需要在一個目錄下創(chuàng)建 docker-compose.yml 文件,寫入相應的配置文件?,F在我們把上面的命令進行改造:

# Compose file 版本號,和 docker 版本號對應。3 支持 docker 1.13.0+
version: "3"
# services 節(jié)點下包含多個待創(chuàng)建的 Docker Container
services:
 # web 節(jié)點就是待啟動的 gitlab 容器
 web:
 image: gitlab/gitlab-ce:latest
 container_name: "gitlab"
 restart: always
 hostname: localhost:10080
 environment:
  TZ: "Asia/Shanghai"
  GITLAB_OMNIBUS_CONFIG: |
  gitlab_rails["time_zone"] = "Asia/Shanghai"
  gitlab_rails["gitlab_shell_ssh_port"] = 10022
  nginx["listen_port"] = 80
 ports:
  - "10080:80"
  - "10022:22"
 volumes:
  - D:\docker\gitlab\config:/etc/gitlab
  - gitlab-logs:/var/log/gitlab
  - gitlab-data:/var/opt/gitlab
volumes:
 gitlab-logs:
 gitlab-data:

可以看到這個文件的內容幾乎和之前的 docker run 命令是保持一致的,唯一不同的是不需要我們自己創(chuàng)建 volume 了,直接在配置文件中配置后,啟動時會自己為我們創(chuàng)建。

配置完成后,使用 docker-compose 命令運行起來。

# 打開 cmd,進入 docker-compose.yml 的根目錄
# 創(chuàng)建容器
docker-compose up -d

#關閉容器
docker-compose stop

What's More

1. Web UI 端口顯示問題

由于 Gitlab 是在 Docker 內運行的,外部需要訪問的話都是需要通過端口映射的,并且一般內部端口不會和映射出來的外部端口相同。所以在用的時候可能會出現一些問題。

例如在我們例子里,22 映射到 10022,80 映射到 10080??梢钥吹皆?Gitlab 默認的 WebUI 中,項目顯示的克隆地址默認是不帶端口號的,如下圖所示:

因此在進行克隆的時候,無論是 http 還是 ssh,都需要在 url 中手動添加新的端口,例如

http://localhost:10080/root/demo.git

修改配置文件后可以直接在 WebUI 中顯示正確的 url。

具體需要修改 gitlab.rb 和容器內部 /var/opt/gitlab/gitlab-rails/etc/gitlab.yml。

首先修改 gitlab.rb

# 取消這條配置文件的注釋,并修改為外部映射的 ssh 端口
gitlab_rails['gitlab_shell_ssh_port'] = 1022
# 使用 exec 進入容器內部
root@gitlab:/# gitlab-ctl reconfigure

再修改 /var/opt/gitlab/gitlab-rails/etc/gitlab.yml

gitlab:
 ## Web server settings (note: host is the FQDN, do not include http://)
 host: 127.0.0.1
 port: 10080 # 修改此處
 https: false
# 修改完后執(zhí)行
root@gitlab:/# gitlab-ctl stop
root@gitlab:/# gitlab-ctl start

這里要注意,后面的那個配置文件是由前面那個生成的,修改 gitlab.rb 后 reconfigure,后面那個配置文件就會被重置了,注意一下修改的順序。

顯然這種方法比較麻煩,如果使用 docker-compose 來啟動容器的話,可以直接在 environment 的 GITLAB_OMNIBUS_CONFIG 節(jié)點中配置。

2. 鏡像備份問題

由于使用的是 volume,因此 gitlab 內部的數據直接由 docker 管理了。顯然就不太友好。如果有這個需求的可以閱讀參考文獻 2,里面提到了備份的方法。

總結

總之,Windows 對 Docker 的支持不是很友好,除了下一個學習學習,嘗嘗鮮,或者用于安裝一些 Windows 下無法安裝的軟件,例如 Redis 等外,并不建議使用,顯然選擇 linux 系統(tǒng)一個是更明智的選擇。

Reference

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 鴻蒙HarmonyOS剪切板的實現

    鴻蒙HarmonyOS剪切板的實現

    這篇文章主要介紹了鴻蒙HarmonyOS剪切板的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • Win10專業(yè)版激活方法步驟詳解

    Win10專業(yè)版激活方法步驟詳解

    這篇文章主要介紹了Win10專業(yè)版激活方法步驟詳解,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-01-01
  • Win10 系統(tǒng)下快速搭建mxnet框架cpu版本

    Win10 系統(tǒng)下快速搭建mxnet框架cpu版本

    這篇文章主要介紹了Win10 系統(tǒng)下快速搭建mxnet框架cpu版本,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-10-10
  • 鴻蒙HarmonyO開發(fā)實戰(zhàn)-Web組件中的Cookie及數據存儲

    鴻蒙HarmonyO開發(fā)實戰(zhàn)-Web組件中的Cookie及數據存儲

    Cookie是一種存儲在用戶計算機上的小文本文件,用于在用戶訪問網站時存儲和提取信息,它由網站服務器發(fā)送到用戶的瀏覽器,并存儲在用戶的計算機上,每當用戶訪問該網站時,瀏覽器將發(fā)送該Cookie回服務器,以用于識別用戶和存儲用戶的首選項和其他信息
    2024-06-06
  • windows環(huán)境下修改pip鏡像源的方法詳解

    windows環(huán)境下修改pip鏡像源的方法詳解

    這篇文章主要介紹了windows環(huán)境下修改pip鏡像源的方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • 紅帽RedHat 8.0新特性(網絡、yum源、Web界面管理等)

    紅帽RedHat 8.0新特性(網絡、yum源、Web界面管理等)

    這篇文章主要介紹了紅帽RedHat 8.0新特性(網絡、yum源、Web界面管理等),本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • 華為鴻蒙DevEco studio2.0的安裝和hello world運行教程

    華為鴻蒙DevEco studio2.0的安裝和hello world運行教程

    這篇文章主要介紹了關于華為鴻蒙DevEco studio2.0的安裝和運行第一個hello world的文章教程詳解,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2020-09-09
  • windows linux兩個系統(tǒng)修改默認啟動項

    windows linux兩個系統(tǒng)修改默認啟動項

    這篇文章主要介紹了windows linux兩個系統(tǒng)修改默認啟動項,需要的朋友可以參考下
    2007-02-02
  • windows下使用Git上傳代碼 的圖文操作方法

    windows下使用Git上傳代碼 的圖文操作方法

    這篇文章主要介紹了windows下使用Git上傳代碼 的圖文操作方法,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-07-07
  • 如何讓WindowsForm縮小到系統(tǒng)匣過程詳解

    如何讓WindowsForm縮小到系統(tǒng)匣過程詳解

    這篇文章主要介紹了讓WindowsForm縮小到系統(tǒng)匣過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09

最新評論