Dockerから実行した場合のNodeJSアプリの「モジュールが見つかりません」

リンセイン

現在、アプリをコンテナ化する作業を行っています。アプリの一部はNodeJSExpressバックエンドです。node index.jsまたはを使用してコンソールで実行すると、問題なく動作しnodemon index.jsます。

ここに画像の説明を入力してください

内部では、middlewares/index.jsインポートauthJwt.jsverifySignup.js経由require('./verifySignup)および行いrequire('./authJwt)ます。

これは、コンソールからアプリを実行するときに当然のことながらうまく機能します。ただし、次のDockerfileコードを使用してdocker-imageをビルドする場合:

# build environment
FROM node:14

# Working Directoy
WORKDIR /app

ENV FILE_UPLOADS="./files/uploads"
ENV FILE_UPLOADS_PART="./files/uploads_part"
ENV PORT=3001
ENV DB_HOST="localhost"
ENV DB_USER="root"
ENV DB_PASSDWORD="root_password"
ENV DB_NAME="upload_db"
ENV SECRET_KEY="bezkoder-secret-key"

# Copy Needed Files for Dependencies
COPY package.json /app/package.json
COPY yarn.lock /app/yarn.lock

# Install with YARN
RUN yarn install

# Copy Source Files
COPY ./ /app

EXPOSE 3001

CMD [ "yarn", "start" ]

イメージを実行すると、すぐに終了します。ログを見ると、次のエラーが見つかりました。

$ docker logs 031241ce227a
yarn run v1.22.5
$ node index.js
internal/modules/cjs/loader.js:895
  throw err;
  ^

Error: Cannot find module './verifySignUp'
Require stack:
- /app/middleware/middleware.js
- /app/routes/auth.routes.js
- /app/index.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:892:15)
    at Function.Module._load (internal/modules/cjs/loader.js:742:27)
    at Module.require (internal/modules/cjs/loader.js:964:19)
    at require (internal/modules/cjs/helpers.js:88:18)
    at Object.<anonymous> (/app/middleware/middleware.js:2:22)
    at Module._compile (internal/modules/cjs/loader.js:1075:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1096:10)
    at Module.load (internal/modules/cjs/loader.js:940:32)
    at Function.Module._load (internal/modules/cjs/loader.js:781:14)
    at Module.require (internal/modules/cjs/loader.js:964:19) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/app/middleware/middleware.js',
    '/app/routes/auth.routes.js',
    '/app/index.js'
  ]
}
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

次に、を使用docker export adoring_kowalevski > contents.tarてdocker-imageをエクスポートし、イメージ内のファイルシステムを確認しましたが、すべてが本来あるべき場所にあります。

必死の試みindex.jsで、異なるフォルダに複数あるために問題が発生する可能性があることを期待して、ルートディレクトリにあるものを除くすべての名前を変更しましたが、問題は解決しませんでした。これが、エラーログにがありmiddleware/middleware.js、名前を変更した後の理由middleware/index.jsです。

編集:rfr使用して参照をからrequire('../middleware')変更しようとしましrfr('middleware')それはまだコンソールから機能しますが、それでもコンテナ内では機能しません。したがって、相対的なファイルパスが原因で、問題は発生していないようです。

リンセイン

私は(やや)愚かであることがわかりました。

内部のインポートmiddleware/index.jsは次のようになりましたrequire('./verifySignUp')フォルダverifySignup.jsのファイルを見るとmiddleware、大文字の「U」なしで名前が付けられていることがわかります。

なぜそれがまだコンソールから機能したのですか?内部にverifySignup.jsは次のコードがあります。

module.exports = {
    authJwt,
    verifySignUp
};

ここでは大文字の「U」で書かれています。つまりnode index.js、コンソールからの実行module.exportsでは、実際のファイル名ではなく、に書き込まれた内容のみが考慮されますが、Docker内で実行する場合は、ファイル名が重要になります。

からファイルの名前を変更して、問題verifySignup.jsverifySignUp.js解決しました。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

pycharmからスクリプトを実行できますが、ターミナルからは実行できません。ImportError:DLLのロードに失敗しました:指定されたモジュールが見つかりませんでした

分類Dev

Reactアプリの実行中にIPFSモジュールが見つかりません

分類Dev

docker compose環境で実行されているノードのjsアプリのモジュールが見つかりません

分類Dev

非コアアプリのモジュール「AspNetCoreModule」が見つかりませんでした

分類Dev

モジュール「express」が見つかりません(dockerを使用したノードアプリ)

分類Dev

\ "java \"を実行するモジュールが、利用可能なアプリケーションモジュールの中に見つかりません

分類Dev

Virtualboxカーネルを実行するのに適したモジュールが見つかりません

分類Dev

djangoアプリのopenshiftでモジュールが見つかりません

分類Dev

dockerの実行時にボリュームとしてnode_modulesを追加しても、dockerでモジュールが見つかりません

分類Dev

EclipseでPythonスクリプトを実行しようとしたときに、「NameError:モジュールmayaのファイルが見つかりません」

分類Dev

新しいアプリを実行するときのAngular7エラー、エラー:モジュール 'temp'が見つかりません、

分類Dev

「そのアプリが見つかりませんでした。」コンソールでherokuコマンドを実行する場合

分類Dev

NodeJSアプリのDockerをビルドするときにモジュールエラーが見つかりません

分類Dev

アプリケーションはのIntelliJ IDEAから実行された場合Mapstruct生成されたクラスが見つかりません

分類Dev

Pyinstaller:.exeの実行時にモジュールが見つかりません

分類Dev

カスタムnodejsアドオンを使用する場合、「指定されたモジュールが見つかりませんでした」

分類Dev

Electronでデプロイされたアプリが実行されていません。モジュール「electron-reload」が見つかりません

分類Dev

nodemonの実行中にモジュール「express」が見つかりません。エラーをスローし、アプリがクラッシュしました

分類Dev

Djangoチュートリアルの実行中にエラーが発生しました:ページが見つかりません

分類Dev

Angular 6.1.8の場合:突然このエラーが発生しました:モジュール './populate-components'が見つかりません

分類Dev

Herokuのデプロイは成功しましたが、モジュールが見つかりません

分類Dev

Scalaコンソールの実行中にエラーが発生しました。モジュールが見つかりません

分類Dev

react-nativerun-iosの実行中にエラーが発生しました。エラー:モジュール 'metro-config'が見つかりません

分類Dev

反応アプリの作成エラー:モジュール './locale'が見つかりません

分類Dev

エラーモジュールが見つかりません:herokuアプリの「pg-native」

分類Dev

テスト「モジュールが見つかりません」の実行時にエラーが発生しました

分類Dev

Templetetagからインポートされた場合、Djangoは私のモジュールを見つけることができませんでした

分類Dev

マルチモジュールMavenプロジェクト:プロジェクトで目標を実行できませんでした、プロジェクトの依存関係を解決できませんでした、アーティファクトが見つかりませんでした

分類Dev

AWS ElasticBeanstalkでDjangoアプリのモジュールが見つかりません

Related 関連記事

  1. 1

    pycharmからスクリプトを実行できますが、ターミナルからは実行できません。ImportError:DLLのロードに失敗しました:指定されたモジュールが見つかりませんでした

  2. 2

    Reactアプリの実行中にIPFSモジュールが見つかりません

  3. 3

    docker compose環境で実行されているノードのjsアプリのモジュールが見つかりません

  4. 4

    非コアアプリのモジュール「AspNetCoreModule」が見つかりませんでした

  5. 5

    モジュール「express」が見つかりません(dockerを使用したノードアプリ)

  6. 6

    \ "java \"を実行するモジュールが、利用可能なアプリケーションモジュールの中に見つかりません

  7. 7

    Virtualboxカーネルを実行するのに適したモジュールが見つかりません

  8. 8

    djangoアプリのopenshiftでモジュールが見つかりません

  9. 9

    dockerの実行時にボリュームとしてnode_modulesを追加しても、dockerでモジュールが見つかりません

  10. 10

    EclipseでPythonスクリプトを実行しようとしたときに、「NameError:モジュールmayaのファイルが見つかりません」

  11. 11

    新しいアプリを実行するときのAngular7エラー、エラー:モジュール 'temp'が見つかりません、

  12. 12

    「そのアプリが見つかりませんでした。」コンソールでherokuコマンドを実行する場合

  13. 13

    NodeJSアプリのDockerをビルドするときにモジュールエラーが見つかりません

  14. 14

    アプリケーションはのIntelliJ IDEAから実行された場合Mapstruct生成されたクラスが見つかりません

  15. 15

    Pyinstaller:.exeの実行時にモジュールが見つかりません

  16. 16

    カスタムnodejsアドオンを使用する場合、「指定されたモジュールが見つかりませんでした」

  17. 17

    Electronでデプロイされたアプリが実行されていません。モジュール「electron-reload」が見つかりません

  18. 18

    nodemonの実行中にモジュール「express」が見つかりません。エラーをスローし、アプリがクラッシュしました

  19. 19

    Djangoチュートリアルの実行中にエラーが発生しました:ページが見つかりません

  20. 20

    Angular 6.1.8の場合:突然このエラーが発生しました:モジュール './populate-components'が見つかりません

  21. 21

    Herokuのデプロイは成功しましたが、モジュールが見つかりません

  22. 22

    Scalaコンソールの実行中にエラーが発生しました。モジュールが見つかりません

  23. 23

    react-nativerun-iosの実行中にエラーが発生しました。エラー:モジュール 'metro-config'が見つかりません

  24. 24

    反応アプリの作成エラー:モジュール './locale'が見つかりません

  25. 25

    エラーモジュールが見つかりません:herokuアプリの「pg-native」

  26. 26

    テスト「モジュールが見つかりません」の実行時にエラーが発生しました

  27. 27

    Templetetagからインポートされた場合、Djangoは私のモジュールを見つけることができませんでした

  28. 28

    マルチモジュールMavenプロジェクト:プロジェクトで目標を実行できませんでした、プロジェクトの依存関係を解決できませんでした、アーティファクトが見つかりませんでした

  29. 29

    AWS ElasticBeanstalkでDjangoアプリのモジュールが見つかりません

ホットタグ

アーカイブ