misskey
misskey copied to clipboard
Docker: Better Cross Build
What
-
yarn build
をネイティブnodeで実行する (エミュレートしているターゲット先バイナリではなく) - 上に加えて
yarn install
のキャッシュを一旦ネイティブで作ってからエミュレート先に渡すことでひょっとするとその分も早くなるかも - おまけとしてどのビルドでも
Why
CPUエミュレーションが遅すぎるのでネイティブバイナリで行うところを増やして早くしたい
Close #8279
Additional info (optional)
Build AMD64 images on M1 Max (ARM64) w/ Docker for Mac 4.6.1 (76265, giving 8 CPUs and 8GB RAMs to VM):
-
docker build --platform linux/amd64 . -f Dockerfile
: 669s -
docker build --platform linux/amd64 . -f Dockerfile.cross
: 200s - 3.3x faster 🚀
(it might be unfair due to some caches)
on GitHub Actions:
- Dockerfile: 40m
- Dockerfile.cross: 18m
- 2.2x faster 🚀
https://github.com/yarnpkg/yarn/issues/2221 とかに書いてあるテクニックを使えばyarn installを高速化できるかも?
コンフリクトしているからcloseしようとしたけどpnpmでもそんな変わらないか?
(うーん、Dockerfile周りがだんだん手に負えなくなってきてしまっている感ない…?)
Closed by #9920