元のCI設定
- GitLab.com の GitLab CI を使用
- 「build」ジョブでdocker imageを作成し、「push」ジョブで検証環境にデプロイしている
- ステージ間でイメージを受け渡すために artifacts を使用
artifactsの上限に引っかかった
ある日「build」ジョブで扱うdocker imageを追加したところ、以下のエラーが発生
ERROR: Uploading artifacts to coordinator... too large archive id=xxx responseStatus=413 Request Entity Too Large status=413 Request Entity Too Large token=xxx
FATAL: too large
ERROR: Job failed: exit code 1
調べてみると、GitLab.com の GitLab CI で一度に扱える artifacts は 1GB までとのこと
対応後のCI設定
- 「build」ジョブを二つに分割して解消
おわり
- 今回は複数のモジュールを1つのジョブで扱おうとしていたので別ジョブにすることで回避できたが、そもそも1つのモジュールが1GBを超えた場合はどうするんだろう...(普通に1GBを超えるケースはあるのでは?)
- ステージを跨がずに、1つのジョブで build & push をまとめて実施することも考えたがなんとなく抵抗感がある...
- 似たような状況でいい回避策をお持ちの方はコメントください