代码之家  ›  专栏  ›  技术社区  ›  human

安慰日志在停靠节点中不工作。js/Express应用程序

  •  4
  • human  · 技术社区  · 8 年前

    我已经构建了一个节点。具有以下Dockerfile的docker容器中的js应用程序:

    FROM node:carbon
    
    WORKDIR /usr/src/app
    
    COPY package*.json ./
    
    RUN npm install
    
    COPY . .
    
    EXPOSE 8080
    CMD [ "npm", "start" ]
    

    我想安慰你。但是,在快速路线内登录之后 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}`);
    

    我做错了什么?

    2 回复  |  直到 8 年前
        1
  •  6
  •   Christian Santos    8 年前

    移除 -d 从用于运行容器的命令:

    docker run -p 49160:8080
    

    这个 -d 选项在后台运行容器,因此您将无法在控制台中看到其输出。

    如果要使容器在后台运行,并且要访问该容器的shell,可以在容器启动并运行后运行以下命令:

    docker exec -it <container-name> bash
    
        2
  •  0
  •   RadoÅ¡    5 年前

    在我搜索相同内容时添加此评论,这是在谷歌上的第一个结果。

    docker logs <container-name>
    

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

    推荐文章