一个小而有趣的问题(对我来说):
我正在尝试从我编写的小型服务器( nodejs + express)创建停靠映像。我的服务器代码是:
var express = require('express');
var Inflector = require('inflected');
var colors = require('colors');
var app = express();
app.get('/hello/:name', function(req, res, next){
var name = Inflector.titleize(req.params.name);
console.log("Saying hello to " + name.yellow);
res.send('Hello ' + name);
});
var port = 9090;
app.listen(port, function(){
console.log(('App is running on port ' + port).inverse);
});我正在用这个Dockerfile创建我的形象:
FROM centos:centos6
RUN rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
RUN yum install -y npm
COPY . /src
RUN cd /src; npm install
EXPOSE 9090
CMD ["node", "/src/index.js"]使用常用命令构建和运行映像:
docker build -t username:centos-nodejs
docker run -p 9090:9090 username:centos-nodejs我原以为日志会在命令行中显示颜色,就像它们没有停靠(例如,node index.js)一样。
原因是什么,我能解决吗?
发布于 2015-09-21 15:39:23
您需要使用"-it“选项运行容器:
docker run -it -p 9090:9090 username:centos-nodejs发布于 2016-07-21 15:53:38
这个特定问题的答案并不完全正确,但如果您使用的是调试库,并且有相同的问题,那么即使在非TTY中,也有一个非文档化的环境变量可以启用颜色:
https://github.com/visionmedia/debug/blob/39ecd87bcc145de5ca1cbea1bf4caed02c34d30a/node.js#L45
因此,将DEBUG_COLORS=true添加到您的环境变量中,可以为调试库颜色修复它。
https://stackoverflow.com/questions/32694928
复制相似问题