簡體   English   中英

Console.log 在 dockerized Node.js / Express 應用程序中不起作用

[英]Console.log not working in a dockerized Node.js / Express app

我使用以下 Dockerfile 在 docker 容器中構建了一個 Node.js 應用程序:

FROM node:carbon

WORKDIR /usr/src/app

COPY package*.json ./

RUN npm install

COPY . .

EXPOSE 8080
CMD [ "npm", "start" ]

我正在嘗試在快速路由中使用 console.log,但是在docker run -p 49160:8080 -d ,控制台不是交互式的,並且根本沒有回顯日志。

'use strict';

// Requires
const express = require('express');

// Constants
const PORT = 8080;
const HOST = '0.0.0.0';

// App
const app = express();

// Routes
app.get('/', (req, res) => {
    // This isn't being printed anywhere
    console.log(req);
});

// Start
app.listen(PORT, HOST);
console.log(`Running on http://${HOST}:${PORT}`);

我做錯了什么?

從用於運行容器的命令中刪除-d

docker run -p 49160:8080

-d選項在后台運行容器,因此您將無法在控制台中看到其輸出。

如果您想讓容器在后台運行並希望訪問該容器的外殼,則可以在容器啟動並運行后運行以下命令:

docker exec -it <container-name> bash

添加此評論是因為我正在搜索相同的內容,這是 Google 上的第一個結果。

docker logs <container-name>

https://docs.docker.com/engine/reference/commandline/logs/

暫無
暫無

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

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