Debian buster on linux/arm64でsharpを使う
M1でDockerを使って開発するとき,環境がlinux/arm64になるが,そこでsharpを使うとき少し詰まったのでメモ. sharpのglibc要求厳しすぎ問題
普通sharpをインストールするとビルド済みのバイナリが使えるが,linux/arm64だとglibcの条件がかなり厳しく,linux/amd64だと2.17以上であればよいところ,linux/arm64だと2.29以上を要求される.
これはかなり厳しくて,debianベースのNode.jsイメージの最新であるbuster系イメージはglibcのバージョンが2.28なので,普通にやるとsharpを使えない. 解決策
debianのtestingのglibcは要求を満たしているのでそっちを入れてやる. code:Dockerfile
&& apt-get update \
&& apt-get -t testing install -y libc6 libstdc++6 \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
libc6とlibstdc++6以外も適当に入れる.
あとがき
そもそもフロントエンドでDocker使わないといけないのがしんどくないか?なぜ……(様々な事情)