What I'd like to do
Arm版インスタンスでRocket ChatをDockerコンテナで動作させたかった。
実際にArm向けにソースコードをダウンロードしてビルドするDckerfileをGithubに置いてあるので、急いでる方はこちらからどうぞ
ポイントになるのは、
RUN npm install \
&& npm install --arch=${ARCH} --force
RUN cd /tmp/bundle/programs/server \
&& rm -rf npm/node_modules/sharp \
&& npm install --platform=linux --arch=arm64v8 sharp \
&& mv node_modules/sharp npm/node_modules/sharp
RUN cd /tmp/bundle/programs/server \
&& rm -rf npm/node_modules/bcrypt \
&& npm install --platform=linux --arch=arm64v8 bcrypt \
&& mv node_modules/bcrypt npm/node_modules/bcrypt
RUN cd /tmp/bundle/programs/server \
&& rm -rf npm/node_modules/bcrypt \
&& npm install --platform=linux --arch=arm64v8 bcrypt \
&& mv node_modules/bcrypt npm/node_modules/bcrypt
RUN cd /tmp/bundle/programs/server/npm/node_modules/meteor/accounts-password \
&& rm -rf /node_modules/bcrypt \
&& npm install --platform=linux --arch=arm64v8 bcrypt
のあたり。これらのモジュールは、そのままではArmアーキテクチャでビルドできないので一旦削除して、Arm用のものをDLし直す。