From 13007c7aad6145ed91fb8f776b9015c615023398 Mon Sep 17 00:00:00 2001 From: Steven Date: Fri, 21 Jul 2017 09:46:42 -0400 Subject: [PATCH] Update content and license for node --- node/content.md | 63 +++++++++++++++++++++++++++++++++++++++++++++++-- node/license.md | 5 +++- 2 files changed, 65 insertions(+), 3 deletions(-) diff --git a/node/content.md b/node/content.md index 33af0d8bcb62..1e79530e6f47 100644 --- a/node/content.md +++ b/node/content.md @@ -29,12 +29,71 @@ $ docker run -it --rm --name my-running-app my-nodejs-app ### Notes -The image assumes that your application has a file named [`package.json`](https://docs.npmjs.com/files/package.json) listing its dependencies and defining its [start script](https://docs.npmjs.com/misc/scripts#default-values). +The image assumes that your application has a file named +[`package.json`](https://docs.npmjs.com/files/package.json) listing its +dependencies and defining its [start +script](https://docs.npmjs.com/misc/scripts#default-values). + +It also assumes that you have a file named [`.dockerignore`](https://docs.docker.com/engine/reference/builder/#/dockerignore-file) otherwise it will copy your local npm modules: + +``` +node_modules +``` + +We have assembled a [Best Practices Guide](https://github.com/nodejs/docker-node/blob/master/docs/BestPractices.md) for those using these images on a daily basis. ## Run a single Node.js script -For many simple, single file projects, you may find it inconvenient to write a complete `Dockerfile`. In such cases, you can run a Node.js script by using the Node.js Docker image directly: +For many simple, single file projects, you may find it inconvenient to write a +complete `Dockerfile`. In such cases, you can run a Node.js script by using the +Node.js Docker image directly: ```console $ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/app -w /usr/src/app node:4 node your-daemon-or-script.js ``` + +## 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 ... +``` + diff --git a/node/license.md b/node/license.md index 21197f781629..7f3da68b7b42 100644 --- a/node/license.md +++ b/node/license.md @@ -1 +1,4 @@ -View [license information](https://github.com/joyent/node/blob/master/LICENSE) for the software contained in this image. +[License information](https://github.com/nodejs/node/blob/master/LICENSE) for +the software contained in this image. [License +information](https://github.com/nodejs/docker-node/blob/master/LICENSE) for the +Node.js Docker project. \ No newline at end of file