מנסה להבין איפה הטעות שלי
קובץ Dockerfile:
קובץ package.json:
קןבץ app.js :
בטרמינל אני יוצר image בהצלחה עם הפקודה:
אחר כך אני מנסה ליצור קונטיינר עם הפקודה הבאה:
אבל זה נכשל, השגיאה שמוצגת:
איפה הטעות שלי?
קובץ Dockerfile:
קוד:
FROM node:18-alpine
WORKDIR /app
COPY . .
COPY app.js /app/app.js
# --- NETFREE CERT INTSALL ---
ADD https://netfree.link/dl/unix-ca.sh /home/netfree-unix-ca.sh
RUN cat /home/netfree-unix-ca.sh | sh
ENV NODE_EXTRA_CA_CERTS=/etc/ca-bundle.crt
ENV REQUESTS_CA_BUNDLE=/etc/ca-bundle.crt
ENV SSL_CERT_FILE=/etc/ca-bundle.crt
# --- END NETFREE CERT INTSALL ---
RUN npm install -g
CMD ["node", "app.js"]
קובץ package.json:
קוד:
{
"name": "my-nodejs-app",
"version": "1.0.0",
"description": "My Node.js App",
"main": "app.js",
"scripts": {
"start": "node app.js"
},
"dependencies": {
"express": "^4.18.1"
},
"author": "premium",
"license": "MIT"
}
קןבץ app.js :
קוד:
const express = require('express');
const app = express();
// מסלול ראשי
app.get('/', (req, res) => {
res.send('Hello, nice world!');
});
// הגדרת פורט עבור השרת
const port = process.env.PORT || 3000;
// התחלת הקישור בפורט מסוים
app.listen(port, () => {
console.log(`Server is running on port ${port}`);
});
בטרמינל אני יוצר image בהצלחה עם הפקודה:
קוד:
docker build -t my-nodejs-app .
אחר כך אני מנסה ליצור קונטיינר עם הפקודה הבאה:
קוד:
docker run -p 3001:3000 -v $(pwd)/my-app:/app my-nodejs-app
אבל זה נכשל, השגיאה שמוצגת:
קוד:
node:internal/modules/cjs/loader:998
throw err;
^
Error: Cannot find module '/app/app.js'
at Module._resolveFilename (node:internal/modules/cjs/loader:995:15)
at Module._load (node:internal/modules/cjs/loader:841:27)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
at node:internal/main/run_main_module:23:47 {
code: 'MODULE_NOT_FOUND',
requireStack: []
}
Node.js v18.12.1
איפה הטעות שלי?