[Gitlab] error: RPC failed; result=22, HTTP code = 413が出た時の対応

自前のGitlabサーバーへ、git push origin masterしようとしたら、以下のエラーが出て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ができました!