hum*_*man 3 node.js express docker dockerfile
我使用以下 Dockerfile 在 docker 容器中构建了一个 Node.js 应用程序:
FROM node:carbon
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 8080
CMD [ "npm", "start" ]
Run Code Online (Sandbox Code Playgroud)
我正在尝试在快速路由中使用 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}`);
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
-d
从用于运行容器的命令中删除:
docker run -p 49160:8080
Run Code Online (Sandbox Code Playgroud)
该-d
选项在后台运行容器,因此您将无法在控制台中看到其输出。
如果您想让容器在后台运行并希望访问该容器的外壳,则可以在容器启动并运行后运行以下命令:
docker exec -it <container-name> bash
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9491 次 |
最近记录: |