Slide 1

Slide 1 text

ビルドが遅い nakanoshima.dev#36 コンテナについて話したい、助けてほしい人集まれLT大会 2024/3/13 株式会社インゲージ 永田 兆

Slide 2

Slide 2 text

自己紹介 ● 永田 兆(ながた きざし) ● @kizashi1122 ● 独立系SIer、BtoB SaaS 会社を経て ● 2014年よりインゲージ社(創業メンバー) ○ 創業時よりCTO ○ 自社サービス Re:lation の開発 ○ 当初 バックエンドやインフラを担当 ● 2児の父(長男小5、長女小3) 2

Slide 3

Slide 3 text

会社紹介 ● 株式会社インゲージ ● 代表取締役 CEO 和田 哲也 ● 創業 2014年1月11日 ● 大阪府大阪市北区芝田1-14-8 梅田北プレイス

Slide 4

Slide 4 text

サービス紹介

Slide 5

Slide 5 text

Chatwork とチャネル連携リリース(先々週) 5

Slide 6

Slide 6 text

6

Slide 7

Slide 7 text

デプロイって時間かかりますよね ● 昔 Java やってたころは、WARファイルを作って Tomcat のあるサーバーに FTP(S) でファイル送って、サーバ再起動して終わりだった。 ● Rails をさわるようになってからは(EC2 に直起動) Capistrano を使ってデ プロイしていた。時間もデプロイ開始から5分くらいで終わってた。 7

Slide 8

Slide 8 text

Docker を使うようになって ● CodePipeline でデプロイ ○ Pull 型のデプロイ ○ Source → Build → Deploy ● Build に時間がかかる! 8

Slide 9

Slide 9 text

Dockerfile や buildspec ファイルやら見直した ● Dockerfile 内の使わないソフトのインストールをやめる ● buildspec ○ docker build の引数に --build-arg BUILDKIT_INLINE_CACHE=1 を指定 ○ 環境変数に export DOCKER_BUILDKIT=1 ● しかし大きな効果はなく 9

Slide 10

Slide 10 text

それとは別に ● docker build 内で webpack でバンドル中に以下のエラーがおこったりおこら なかったりすることがあった 10

Slide 11

Slide 11 text

write EPIPE 対応 ● この対応で build stage のインスタンスを BUILD_GENERAL1_MEDIUM にした 11

Slide 12

Slide 12 text

結果 ● エラーもなくなって、ビルドも速くなった ● ビルドを速くするつもりはなかったので副産物的な成果。30分→15分。 12

Slide 13

Slide 13 text

今は ● webpack をやめて、vite を使ってることもあり 15 分→12分に。 ● 実験 ○ さっき BUILD_GENERAL1_LARGE (一つ上)で試してみたら12分→10分に。 ○ 逆に BUILD_GENERAL1_SMALL にしてみたら yarn run build でエラー(2回実施して2回と も) 13

Slide 14

Slide 14 text

懇親会にて ● bun https://bun.sh/ を使えば、yarn install が速くなるよ! と教えて頂きま した 14

Slide 15

Slide 15 text

15 インゲージではエンジニアを募集しています!

Slide 16

Slide 16 text

ご清聴ありがとうございました 16