Я создал простой NodeJS сервер с Hapi и попытался запустить его внутри Docker контейнера.
Он прекрасно работает внутри Docker, но я не могу получить к нему доступ (даже если я сделал сопоставление портов).
const hapi = require("@hapi/hapi");
const startServer = async () => {
const server = hapi.Server({
host: "localhost",
port: 5000,
});
server.route({
method: 'GET',
path: '/sample',
handler: (request, h) => {
return 'Hello World!';
}
});
await server.start();
console.log(`Server running on port ${server.settings.port}`);
};
startServer();
Docker файл выглядит следующим образом:
FROM node:alpine
WORKDIR /usr/app
COPY ./package.json ./
RUN npm install
COPY ./ ./
CMD [ "npm","run","dev" ]
Чтобы запустить docker, я сначала строю с помощью:
docker build .
Затем я запускаю команду, получаемую сверху, для сопоставления портов:
docker run -p 5000:5000 <image-name>
Когда я пытаюсь получить к нему доступ через почтальона на http://localhost:5000/sample
или даже localhost:5000/sample
, он продолжает говорить Couldn't connect to server
, а когда я открываю в chrome, он говорит то же самое Can't display page
.
PS. Когда я запускаю код как обычно без Docker контейнера, просто с npm run dev
из моего терминала, код работает просто отлично.
Так что, я уверен, код API в порядке.
Есть предложения ??