Synology Nas : Docker-Gitlab upload 용량 제한 20M :: iopeni - Think of C#

Synology NAS를 구입 하게 된 가장 큰 이유는 사실 SVN이었습니다.


뭐 사실 구입 이후 문화 생활 부분에서 조금은 윤택 해짐을 느끼고 있습니다.


한동안 잘 쓰던 SVN을 접고 갑자기 Git을 쓰고 싶어서.. Synology NAS에 기본 포함된 Git을 쓰려고 하니.. 이거 참 난감한 겁니다.


난감한 이유가 시놀로지 나스에 기본 포함된 Git은 SSH프로토콜만 사용하고 있는 거였습니다. 결국 외부 확장 프로그램들 즉 Tortoise Git 같은 것들의 도움을 받아야 좀 수월해 질 수 있었습니다.


그런데 전 외부 확장프로그램을 쓰고 싶다기 보다 Visual Studio 에서 Git을 이용할 수 있었으면 했습니다. 이력관리 도구가 너무 좋거든요. SVN 과는 비교도 되지 않을 정도로 훌륭합니다.


그런데 Visual Studio 의 Git Provider는 HTTP 프로토콜만 지원합니다.


별 오만가지 방법을 다 동원하고 테스트 하고 실험 하였습니다만.. 끝내는 그냥 포기 하고 말았습니다. 그냥.. PC Git을 설치 하는게 오히려 더 편하고.. 확장성이 더 좋았기 때문입니다.


그런데 어느날... Synology NAS에 가상화 솔루션 Docker가 포함된 겁니다.


그리고 좀 있다가.... GitLab 이 Docker에 포함 되었는데. 이 GitLab이 나름 그래도 꽤 유명한 Git Server에 마일스톤 관리 및 이슈트래킹을 할 수 있는 도구 입니다. 혼자 가지고 놀기는 정말 딱이죠.


이게 웬 떡이냐~~~ 바로 함 해봐야 겠다 라고 생각할 즈음.. 정말 아끼는 동생으로 부터 또 다른 제보를 받았습니다.


소스트리에 좀 사이즈가 큰 파일을 첨부 하여 커밋 푸쉬 하려고 하니 원격서버에서 자꾸 뱉어 낸다는 겁니다.


그래서 인터넷 검색을 해 봤더니. 용량 제한이 있다고 인터넷에 기사가 올려져 있다는 겁니다.


인터넷에서 하라는 데로 다 해봤는데 안된다는 겁니다.


이거참... 그래서 저두 빨리 해 봐야 겠다고 생각 하며 오늘 오전 Reposirory를 만들고. 사이즈가 좀 큰 동영상 file 하나와 PDF문서 하나를 커밋 하고. 바로 Push~~~~~~~~

올라가는지 관찰 하려던 찰나.. 다음과 같은 오류가 터지며 뱉어 내 버리는 겁니다.

fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
error: RPC failed; result=22, HTTP code = 413
Everything up-to-date

뭐 구글링 약간 하다 보니 몇가지 방법들이 보입니다. 문제는 이것이었던 거죠... 웹서버가 대용량 파일일 경우 뱉어 버리는 겁니다.


역시나 개발자의 천국 이라는 Stackoverflow에는 정확한 해결책이 제시 되고 있습니다.


http://stackoverflow.com/questions/7489813/github-push-error-rpc-failed-result-22-http-code-413

------------------------------------------------------------------------------------


If you get error 413, then the issue doesn't lie with git but with your web server. It's your web server that is blocking big upload files.

Solution for nginx

Just load your nginx.conf and add client_max_body_size 50m; ( changing the value to your needs ) in the http block.

Reload nginx to accept the new config by executing sudo service nginx reload and try again to push your commit over http.

Solution for Apache

In your httpd.conf add LimitRequestBody 52428800 ( changing the value to your needs ) inside a <Directory /> block. Doing this you can limit the request of the whole server filesystem, just a single Virtual Host or a directory.

I hope this helps.

--------------------------------------------------------------------------------------


그런데 이눔의 제 나스는 이 해결책 대로 열심히 했는데 안되는 겁니다. 


문득 드는 생각이 가상화 솔루션이므로 혹시 Docker에서 뭔가 걸르는게 아닌가 싶더군요. 


https://registry.hub.docker.com/u/sameersbn/gitlab/


이 문서를 쭉 보다 보면.. 해결책이 보입니다. 답은 말이죠 바로.. 이겁니다.


일단 SSH 터미널을 오픈 합니다. 그리고 root 계정으로 로그인 하세요. 그 다음.. 아래 파일을 vi로 오픈 하세요


/usr/syno/etc/packages/Docker/synology_gitlab.config


그리고 다음과 같이 추가해 주세요.


{

"key" : "NGIX_MAX_UPLOAD_SIZE"

"value" : "1000m"

}


물론 위 Stackoverflow에 달린 답변 처럼. 


etc/nginx/nginx.conf


파일도 수정해 주셔야 합니다. 그리고 리부팅... 하면 됩니다.


오늘 이걸 해결 하느라구 하루 종일 걸렸네요. 어찌 되었든... 이제 정말 자알 사용 할 수 있을 듯 합니다.  

'Favorite > Computing' 카테고리의 다른 글

Google Tensorflow ..... 설치 해보다.....  (0) 2016.10.24
어플리케이션을 쉽게 설치 하자. chocolatey  (0) 2016.01.23
PowerMockup  (0) 2015.03.24
3M WP-8500 프리젠터  (0) 2013.08.09
외장 하드디스크...  (0) 2010.04.07
Posted by 프로그래머란 카페인을 코드로 변환하는 기계다
,