LoginSignup
0
0

M1チップMacでDockerを利用したAmazonLInux-Node環境で詰まった話

Last updated at Posted at 2024-06-08

発生状況

Windows利用者が作成したdockerfileをMacユーザーが利用したところ、エラーが発生した。

原因と解決法

自分はWindowsしか利用したことがないため、

=> ERROR [web 11/12] RUN npm install                                                               0.1s
------
 > [web 11/12] RUN npm install:
0.112 rosetta error: failed to open elf at /lib64/ld-linux-x86-64.so.2
0.112
------
failed to solve: process "/bin/sh -c npm install" did not complete successfully: exit code: 133

これが何原因か特定まで時間がかかってしまった。

原因は、

RUN curl -fsSL https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64.tar.xz | tar -xJ -C /usr/local --strip-components=1 --no-same-owner

linux-x64.tar.xzであった。要は、x86系用を引っ張ってきてしまったため、arm64系では動かない問題であった、、

linux-arm64に変更することで、Dockerの乗っている環境で正しく動作するバイナリをとってくることが可能である。

しかし、これは環境に依存してしまうため、Bestな方法としては次の通りである。

RUN yum -y install nodejs

単純に、yum or dnfでinstallしてやればCPUに合わせたものを引っ張ってきてくれる。

感想

Amazon Linuxではこれまで、

このような感じで、いつもインストールしていたため、個別に入れる場合は別にyumdnfでよいと知り驚いた、、、

バイナリで引っ張る必要があるという先入観が解決までの道筋を邪魔していた、、

また、ほかのインストールにも応用が利く内容だと思うので、今後の参考にしていきたいと思う。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0