Справочная информация о моем сервере: у меня все помещено в контейнер докеров. Есть докер-сеть. Все докеры находятся в одной сети. И я использую псевдонимы для адресации моего контейнера. Мои псевдонимы контейнеров для gitlab: gitlab.docker
. Интересным контейнером для этого вопроса является мой gitlab_runner
контейнер, мой gitlab
контейнер и мой nginx
контейнер.
Я заметил свой gitlab-runner
контейнер выдает ошибку 18, когда предполагалось клонировать проект.
Я почти уверен, что это nginx
вопрос. Я знаю это, потому что я вошел в контейнер в той же сети докеров и однажды попытался клонировать через мой общедоступный адрес DNS, а один раз через внутреннюю сеть, обогнув мой собственный nginx, в результате (заменил мой домен и домен верхнего уровня. Остальное нетронутый):
bash-5.0# git clone "http://gitlab.myHost.com/docker/sbt.git"
Cloning into 'sbt'...
Username for 'https://gitlab.myHost.com': root
Password for 'https://root@gitlab.myHost.com':
warning: redirecting to https://gitlab.myHost.com/docker/sbt.git/
remote: Enumerating objects: 16, done.
remote: Counting objects: 100% (16/16), done.
remote: Compressing objects: 100% (12/12), done.
error: RPC failed; curl 18 transfer closed with outstanding read data remaining
fatal: the remote end hung up unexpectedly
fatal: early EOF
fatal: unpack-objects failed
bash-5.0# git clone "http://gitlab.docker/docker/sbt.git"
Cloning into 'sbt'...
Username for 'http://gitlab.docker': root
Password for 'http://root@gitlab.docker':
remote: Enumerating objects: 16, done.
remote: Counting objects: 100% (16/16), done.
remote: Compressing objects: 100% (12/12), done.
remote: Total 16 (delta 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (16/16), done.
Это моя конфигурация nginx:
server {
server_name gitlab.myHost.com;
listen 80;
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/gitlab.myHost.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/gitlab.myHost.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
if ($scheme != "https") {
return 301 https://$host$request_uri;
}
location / {
proxy_pass http://gitlab.docker;
}
}
Кто-нибудь знает, почему это не работает? Я должен отметить, что сайт gitlab работает нормально. За исключением веб-среды IDE, которая не загружается. На всякий случай, это связано, но на самом деле это проблема, которая очень далеко в моей задаче.
Хорошо, я разобрался. В моем репо был двоичный файл размером 55 МБ, который был слишком большим. Добавление этого в мою конфигурацию решило это:
client_max_body_size 4G;
Вопрос в том, неужели 4 ГБ слишком велики для этого. Но поскольку это только для Gitlab, я думаю, что на данный момент это нормально.