Сам по себе сервер при обычном запуске вполне себе работает.
Файл server.js:
const http = require("http");
const fs = require("fs");
const server = http.createServer((req, res) => {
switch (req.url) {
case "/":
fs.readFile("categories.html", "utf-8", (err, html) => {
if (err) {
console.log(err);
} else {
res.writeHead(200, { "Content-Type": "text/html" });
res.end(html);
}
});
break;
case "/style.css":
fs.readFile("style.css", "utf-8", (err, html) => {
if (err) {
console.log(err);
} else {
res.writeHead(200, { "Content-Type": "text/css" });
res.end(html);
}
});
break;
case "/index.js":
fs.readFile("index.js", "utf-8", (err, html) => {
if (err) {
console.log(err);
} else {
res.writeHead(200, { "Content-Type": "text/javascript" });
res.end(html);
}
});
break;
default:
console.log(req.url);
res.writeHead(200, { "Content-Type": "text/plain" });
res.end("error 404");
break;
}
});
server.listen(8000, () => console.log("Up"));
Но когда я его упаковываю в контейнер:
Файл Dockerfile
FROM node:latest
ADD server.js .
ADD categories.html .
ADD dishes.html .
ADD style.css .
ADD index.js .
EXPOSE 8000
CMD ["node", "server.js"]
То соединения по localhost:8000 нет.
Хотя при запуске контейнера и выводится сообщение "UP"
Что я делаю не так?