在我的测试设置中,我使用docker执行器来运行我的构建。几乎所有项目都在一个官方节点图像上运行(即node:6
)。
默认情况下,这些官方图像的日志记录级别设置为输出完全升级。
根据官方文档,可以禁用https://github.com/nodejs/docker-node/blob/master/README.md#verbosity
Verbosity
By default the Node.js Docker Image has npm log verbosity set to info instead
of the default warn. This is because of the way Docker is isolated from the
host operating system and you are not guaranteed to be able to retrieve the
npm-debug.log file when npm fails.
When npm fails, it writes it's verbose log to a log file inside the container.
If npm fails during an install when building a Docker Image with the docker
build command, this log file will become inaccessible when Docker exits.
The Docker Working Group have chosen to be overly verbose during a build to
provide an easy audit trail when install fails. If you prefer npm to be less
verbose you can easily reset the verbosity of npm using the following
techniques:
Dockerfile
If you create your own Dockerfile which inherits from the node image you can
simply use ENV to override NPM_CONFIG_LOGLEVEL.
FROM node
ENV NPM_CONFIG_LOGLEVEL warn
...
Docker Run
If you run the node image using docker run you can use the -e flag to override
NPM_CONFIG_LOGLEVEL.
$ docker run -e NPM_CONFIG_LOGLEVEL=warn node ...
NPM run
If you are running npm commands you can use --loglevel to control the
verbosity of the output.
$ docker run node npm --loglevel=warn ...
但是当我刚从gitlab-ci.yml
文件引用docker镜像时,就像这样:
image: node:6
test:
script:
- npm install
如何将环境变量(设置日志记录级别)传递给docker executor?
答案 0 :(得分:2)
如https://jsfiddle.net/n7oo7dLk/中所列,您可以使用variables
关键字在配置文件中指定环境变量。在你的情况下,这将是
image: node:6
test:
variables:
NPM_CONFIG_LOGLEVEL: warn
script:
- npm install
或者,您可以在CI配置的脚本部分中的所有--loglevel=warn
命令中添加node
。