Gitlabで「error: RPC failed; result=22, HTTP code = 413」が出た時の対応
自前のGitlabサーバーへ、git push origin masterしようとしたら、以下のエラーが出てpushができない状況になりました。 調べてみると、大抵の場合はファイルサイズが多すぎてGitlabかnginxがエラーを返しているようです。
更新日: 2019.12.11公開日: 2017.8.22
現象
自前のGitlabサーバーへ、プッシュしようとしたら、以下のエラーが出てpushができない状況になりました。
error: RPC failed; result=22, HTTP code = 413
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
調べてみると、大抵の場合はファイルサイズが多すぎてGitlabかnginxがエラーを返しているということでした。
SOURCE: Github Push Error: RPC failed; result=22, HTTP code = 413
自分の環境は、Dockerコンテナで構成された環境で、
- nginx proxyコンテナ(リバースプロキシ)
- nginx SSLコンテナ
- gitlabサーバーコンテナ(3コンテナ構成)
という構成で、たしかにnginxの設定は全然いじってないなぁと思い出してnginxコンテナをdocker-compose stopで一回止めて、docker-compose.ymlの中身を書き換えて、新たに設定を読み込むようにしました。
以下は、docker-composeを利用しているケースでの修正例ですが、dockerを使っていない場合は、単純に/etc/conf.dの設定ファイルに追記するだけでいけるはずです。
エラーの修正方法
Docker-composer upされたコンテナの設定を書き換える
まずは、起動済みのdockerコンテナたちを止めます。
//nginx proxyコンテナのdocker-composeファイルのある場所に移動
cd nginx-proxy
//コンテナを停止
docker-compose stop
続いて、docker-compose.ymlに、nginxの設定ファイルを読み込む設定を追加します。
vi docker-compose.yml
volumes:
- ./conf.d/:/etc/nginx/conf.d //ここを追記
docker-compose.ymlがあるディレクトリにconf.dというディレクトリを作成して、その中にxxxx.confというファイルを入れれば読み込まれるようにしました。
conf.dに設定ファイルを入れる
mkdir conf.d
cd conf.d
vi myconf.conf //名前は最後が「.conf」ならなんでもいい
client_max_body_size 50m;
設定が完成したので、再度docker-composeでコンテナたちを起動します。
//docker-compose.ymlがあるディレクトリに移動して、、、
docker-compose up -d
この状態で再度、git push origin masterをしてみると、しっかりとpushができました!
Gitlabで「error: RPC failed; result=22, HTTP code = 413」が出た時の対応方法をみてきました。わかってしまえば簡単なので、自前でGitlabサーバーを立てるときは、事前にしっかり設定したほうがいいですね。