[英]How can I increase gitlab CE lfs file size limitation as to not get 500 server errors?
我正在使用出色的sameersbn / gitlab為我的工作設置自定義gitlab服務器。
所以我有一個荒謬的場景,我正在使用git lfs
使用gitlab ce v8.12.5存儲10-20 GB范圍內的文件,但是我發現到處都是500個服務器錯誤,我的上傳無法完成。
問題:有誰知道我可以增加服務器端限制嗎?
注意:這不是413 nginx的問題,我將
client_max_body_size 500G
設置為client_max_body_size 500G
因此應該將其轉發到gitlab就可以了。
如果需要更多信息(例如日志文件等),我會很樂意提供,只需發表評論即可。
在同一問題上似乎存在相關的gitlab問題。
其他相關資源:
目前,我的假設是docker容器中的鏈服務器或代理服務器中某處存在超時。
所以這是我剛剛注意到docker映射的設備/dev/dm-7
幾乎在gitlab錯誤出現500的同時變為100%充滿的情況。
現在,我開始相信這不是gitlab問題,而是docker問題,而且gitlab的空間即將用完。
感謝您的寶貴時間,並為您加油打氣。
第一個主要問題是~/log/gitlab-workhorse.log
的以下錯誤
error: handleStoreLfsObject: copy body to tempfile: unexpected EOF
這個錯誤與gitlab本身無關 ,但是最新版本的docker決定將默認容器大小從100G /容器縮小到10G /容器,因此,這意味着每當我嘗試上傳大於10GB的文件時,gitlab會嘗試制作一個大小為上載文件的臨時文件 (在我的情況下為30GB),隨后由於docker容器中空間不足而出現上述錯誤消息。
我遵循了有關如何增加容器大小的出色指南 ,但基本上可以歸結為:
sudo `which docker-compose` down
停止正在運行的容器。
sudo vim /etc/systemd/system/docker.service
並附加
--sotrage-opt dm.basesize=100G
作為新基本圖像的默認大小。 現在,由於docker似乎存在當前問題,您必須
sudo `which docker` rmi gitlab
假設您的圖片稱為gitlab
,並且
sudo `which docker-compose` up
重新拉動圖像並以適當的尺寸創建圖像。
如果仍然不能解決問題,請嘗試
sudo systemctl restart docker.service
因為當sudo systemctl restart docker.service
似乎不執行您要求的操作時,這似乎sudo systemctl restart docker.service
。
sudo docker exec -it gitlab df -h
應該產生如下內容:
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/docker-253:1-927611-353ffe52e1182750efb624c81a3a040d5c054286c6c5b5f709bd587afc92b38f 100G 938M 100G 1% /
我不是100%肯定所有這些設置都是必需的,但是在解決下面的問題2時,我最終不得不在docker-compose.yml中也進行了設置。
- GITLAB_WORKHORSE_TIMEOUT=60m0s
- UNICORN_TIMEOUT=3600
- GITLAB_TIMEOUT=3600
除了將容器的大小從10GB調整為100GB之外,我還必須向正在運行的實例中添加以下內容:
原因是文件大小太大(30GB +),網絡速度太慢(10MB / s),以至於上載花費的時間比默認的nginx長,並且由於504 Gateway Timeout
。
sudo docker exec -it /bin/bash
gitlab容器的vim.tiny /etc/nginx/nginx.conf
:
http {
...
client_max_body_size 500G;
proxy_connect_timeout 3600;
proxy_send_timeout 3600;
proxy_read_timeout 3600;
send_timeout 3600;
...
}
然后我重新啟動了nginx。 可悲的是, service restart nginx
無法正常工作,我不得不:
service stop nginx
service start nginx
注意:我有一個反向代理程序在此服務器上運行,它可以捕獲所有http請求,所以我不確定,但是我相信我添加到容器的nginx配置中的所有設置都必須在代理端重復
如果我沒有采取任何措施,或者您想對程序中特定部分的執行方式進行一些澄清, 請發表評論並詢問。 這是一種皇家痛苦,我希望可以幫助某人解決此問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.