簡體   English   中英

如何修復運行“找不到模塊”錯誤的 docker 容器?

[英]How to fix docker container running 'cannot find module' error?

我是 docker 新手,正在嘗試將我的 MERRN 堆棧應用程序移至 AWS。 我想在移動它之前對其進行 dockerize。 但是,當我在Medium - Docker with MERN stack 上學習這個在線教程時,我開始使用docker run -p 5000:5000 -d backend啟動我的 docker 鏡像,並且在 VS 代碼中出現錯誤。 我不確定這個錯誤是什么意思,但我認為它與我的文件夾管理有關。

我將附上我的文件夾結構的片段以及我使用的 docker 文件。 所以我的主要問題是我正在嘗試設置所有內容,但這個問題阻礙了我的進步。 所以任何幫助將不勝感激。 謝謝

在此處輸入圖片說明

Docker 文件:

FROM node:10.19.0
# Create app directory
WORKDIR /usr/src/app
# A wildcard is used to ensure both package.json AND package-lock.json are copied
COPY package*.json ./
# Bundle app source
COPY . .
# Install app dependencies
RUN npm install
EXPOSE 5000
CMD [ "npm", "start" ]

錯誤:

> exodus@1.0.0 start /usr/src/app

> node server


internal/modules/cjs/loader.js:638

throw err;

^


Error: Cannot find module './routes/api/Email'

at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)

at Function.Module._load (internal/modules/cjs/loader.js:562:25)

at Module.require (internal/modules/cjs/loader.js:692:17)

at require (internal/modules/cjs/helpers.js:25:18)

at Object.<anonymous> (/usr/src/app/server.js:24:19)

at Module._compile (internal/modules/cjs/loader.js:778:30)

at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)

at Module.load (internal/modules/cjs/loader.js:653:32)

at tryModuleLoad (internal/modules/cjs/loader.js:593:12)

at Function.Module._load (internal/modules/cjs/loader.js:585:3)

at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)

at startup (internal/bootstrap/node.js:283:19)

at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)

npm ERR! code ELIFECYCLE

npm ERR! errno 1

npm ERR! exodus@1.0.0 start: `node server`

npm ERR! Exit status 1



npm ERR!

npm ERR! Failed at the exodus@1.0.0 start script.

npm ERR! This is probably not a problem with npm. There is likely additional logging output above.


npm ERR! A complete log of this run can be found in:

npm ERR! /root/.npm/_logs/2020-10-28T20_13_53_160Z-debug.log

Search...
Stick to bottom

你的 Dockerfile 看起來沒問題,你的項目結構也是如此。 我認為 docker 鏡像由於某種原因有問題並且丟失了文件。

您可以嘗試再次構建映像嗎? COPY 步驟是否正確執行?

// Make sure to execute this in the project root.
docker build -t backend .

如果錯誤仍然存​​在,請使用 bash 或 sh 登錄到 docker 容器並嘗試使用npm start手動啟動節點服務器:

docker run -p 5000:5000 -d backend /bin/bash
or
docker run -p 5000:5000 -d backend /bin/sh

登錄 docker 容器也將有助於調查某些文件是否未傳輸。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM