在我的测试设置中,我使用 Docker 执行器来运行我的构建。我们几乎所有的项目都运行在官方 Node 镜像之一上(即 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 执行程序?
最佳答案
如 gitlab-ci reference 中所列,您可以使用 variables
关键字在配置文件中指定环境变量。在你的情况下,这将是
image: node:6
test:
variables:
NPM_CONFIG_LOGLEVEL: warn
script:
- npm install
或者,您可以将 --loglevel=warn
添加到 CI 配置脚本部分中的所有 node
命令。
关于node.js - 将环境变量从 Gitlab docker 执行器传递到镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45836229/