将环境variables从Gitlab docker执行程序传递到image

在我的testing设置中,我使用docker executor来运行我的构build。 我们几乎所有的项目都在官方节点图像之一(即node:6 )上运行。

默认情况下,这些官方图像来自一个日志logging级别设置为输出非常好。

根据官方文档,可以禁用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文件引用泊坞窗图像,如下所示:

 image: node:6 test: script: - npm install 

我怎么能通过环境variables,设置日志级别,我的docker执行?

如gitlab-ci参考中所列,您可以使用variables关键字在configuration文件中指定环境variables。 在你的情况下,这将是

 image: node:6 test: variables: NPM_CONFIG_LOGLEVEL: warn script: - npm install 

或者,您可以在CIconfiguration的脚本部分中将--loglevel=warn添加到所有node命令。