c0d3man52

Webサイト制作

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サーバーを立てるときは、事前にしっかり設定したほうがいいですね。