Mac(M1)のDocker上で作成したNuxt3用のコンテナがAlmaLinux上で動かなかった時の話

みなさんこんにちは!
今回は、Macで作成していたブログサイト(Nuxt3)をVPS(conoHa)に移行した際に
発生したエラーについて書いていきます。

「npx nuxi upgrade」が使えない?

Nuxt3でブログのリニューアル対応でOSがAlmaLinux9のVPSに移行作業をしていた時のことです。
AlmaLinux上で「npx nuxi upgrade」を使ってNuxt3のアップデート対応を実施したかったのですが、
コマンドを打つとなぜか「EACCES: permission denied」が表示され、エラーとなりました...
 
まじか、なんだこれ?
Mac(M1)上のDockerで作業していたときは発生しなかったのに...

エラー内容見る感じ、yarn関連のファイルへのアクセス権限がないですよみたいなことが記載されていました。
ちなみに、エラーが発生していた時のDockerファイルは下記の通り。


FROM node:18

RUN apt update -y && apt upgrade -y

WORKDIR /front

RUN yarn global add  npm-check-updates

ENV HOST 0.0.0.0

【解決策】Dockerファイルに「USER node」を追加

ネットで解決探してみると、似たようなエラーが発生している事例を見つけました。
https://qiita.com/devtoku/items/b88fc68d874b787a541e
 
記事によると、Dockerファイルに「USER node」を追加することで解決できそうですね。
ということで、下記のように修正して実行してみたところうまくいきました!


FROM node:18

RUN apt update -y && apt upgrade -y

WORKDIR /front
USER node

RUN yarn global add  npm-check-updates

ENV HOST 0.0.0.0

一行追加するだけだったが、結構時間かけてしまったな...
まあでも解決できたらいいか!

まとめ

今回のエラーは、Nuxt3で発生していたエラーというわけではなく、ただDocker周りの権限の問題?だった模様。
ローカルで動いていたものが、VPSなどに移したときに動かなくなる時って結構焦りますね。
 
とりあえず、node関連のDockerファイルを今後作るときは、
「USER node」も追加してあげたほうが良さそうかな?

2024 - Izanagi's Site