| Oct |
NOV |
Dec |
|
24 |
|
| 2019 |
2020 |
2021 |
About this capture
The Wayback Machine - http://web.archive.org/web/20201124180335/https://github.com/nodejs/docker-node
Skip to content
/;ref_cta:Sign up;ref_loc:header logged out">
Sign up
●
Features →
●Code review
●Project management
●Integrations
●Actions
●Packages
●Security
●Team management
●Hosting
●Mobile
●Customer stories →
●Security →
●
●
●
●Explore GitHub →
Learn & contribute
●Topics
●Collections
●Trending
●Learning Lab
●Open source guides
Connect with others
●Events
●Community forum
●GitHub Education
●GitHub Stars program
●
●
Plans →
●Compare plans
●Contact Sales
●Nonprofit →
●Education →
In this repository
All GitHub
↵
Jump to
↵
-
No suggested jump to results
{{ message }}
●
Watch
146
●
Star
6k
●
Fork
1.4k
Official Docker Image for Node.js 🐳 🐢 🚀
hub.docker.com/_/node/
MIT License
6k
stars
1.4k
forks
Star
Watch
●
Code
●
Issues
59
●
Pull requests
15
●
Actions
●
Security
●
Insights
More
●
Code
●
Issues
●
Pull requests
●
Actions
●
Security
●
Insights
Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign up
GitHub is where the world builds software
Millions of developers and companies build, ship, and maintain their software on GitHub — the largest and most advanced development platform in the world.
Sign up for free
2
branches
0
tags
Go to file
Code
Clone
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI.
Learn more.
●
Open with GitHub Desktop
●
Download ZIP
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio
If nothing happens, download the GitHub extension for Visual Studio and try again.
Latest commit
SimenB
Merge pull request #1399 from nschonni/nov-sec-alpine
6504388
Nov 17, 2020
Merge pull request #1399 from nschonni/nov-sec-alpine
feat: November 16 Security Updates for Apline
6504388
Git stats
●
1,355
commits
Files
Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
.github
added issue and pr templates
Nov 9, 2020
10
chore: update to v10.23.0 & v14.15.0
Oct 27, 2020
12
feat: November 16 Security Updates for Apline
Nov 16, 2020
14
feat: November 16 Security Updates for Apline
Nov 16, 2020
15
feat: November 16 Security Updates for Apline
Nov 16, 2020
docs
fix: DocToc in Bestpractices.md
Nov 2, 2020
keys
keys: add key for @danielleadams
Oct 7, 2020
.editorconfig
Update .editorconfig, apply rules to all files
May 15, 2018
CONTRIBUTING.md
Added instructions for submitting a version update PR (#1190)
Jan 13, 2020
Dockerfile-alpine.template
fix: use python3 or python2 for alpine
Sep 22, 2020
Dockerfile-debian.template
chore: add smoke tests to the images
Jan 14, 2020
Dockerfile-slim.template
maybe fix arm?
Feb 13, 2020
GOVERNANCE.md
chore: Point to nodejs admin CoC
Nov 2, 2020
LICENSE
" class="link-gray" href="/web/20201124180335/https://github.com/nodejs/docker-node/commit/0bcaf83ebe6f2744b28b86a1ad5494c50b936f6c">doc(license): transfer license ownership to Node
Oct 13, 2015
README.md
chore: Remove OnBuild variant
Jan 1, 2020
SECURITY.md
chore: remove mention of jessie from SECURITY.md
Jul 28, 2020
architectures
chore: Sort and sync default architecture file
Oct 22, 2020
config
fix: Revert default variant changes
Oct 22, 2020
docker-entrypoint.sh
Added an entrypoint script
May 26, 2019
functions.sh
Remove chakracore config leftovers where subdir had versions
Jul 6, 2020
genMatrix.js
ci: use single dynamic build-test action
Oct 12, 2020
generate-stackbrew-library.sh
chore: update to v10.23.0 & v14.15.0
Oct 27, 2020
update-keys.sh
Add update-keys.sh for nodejs release keys update
Jul 22, 2020
update.sh
ci: use single dynamic build-test action
Oct 12, 2020
README.md
Node.js

The official Node.js docker image, made with love by the node community.
Table of Contents
●What is Node.js?
●How to use this image
●Create a Dockerfile in your Node.js app project
●Best Practices
●Run a single Node.js script
●Verbosity
●Dockerfile
●Docker Run
●NPM run
●Image Variants
●node:<version>
●node:alpine
●node:slim
●License
●Supported Docker versions
●Supported Node.js versions
●Governance and Current Members
●Docker Working Group Members
●Docker Working Group Collaborators
●Emeritus
●Docker Working Group Members
What is Node.js?
Node.js is a platform built on Chrome's JavaScript runtime for easily building
fast, scalable network applications. Node.js uses an event-driven, non-blocking
I/O model that makes it lightweight and efficient, perfect for data-intensive
real-time applications that run across distributed devices.
See: http://nodejs.org
How to use this image
Create a Dockerfile in your Node.js app project
# specify the node base image with your desired version node:<version>
FROM node:10
# replace this with your application's default port
EXPOSE 8888
You can then build and run the Docker image:
$ docker build -t my-nodejs-app .
$ docker run -it --rm --name my-running-app my-nodejs-app
If you prefer Docker Compose:
version: "2"
services:
node:
image: "node:8"
user: "node"
working_dir: /home/node/app
environment:
- NODE_ENV=production
volumes:
- ./:/home/node/app
expose:
- "8081"
command: "npm start"
You can then run using Docker Compose:
$ docker-compose up -d
Docker Compose example copies your current directory (including node_modules) to the container.
It assumes that your application has a file named package.json
defining start script.
Best Practices
We have assembled a Best Practices Guide 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:
$ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/app -w /usr/src/app node:8 node your-daemon-or-script.js
Verbosity
Prior to 8.7.0 and 6.11.4 the docker images overrode the default npm log
level from warntoinfo. However due to improvements to npm and new Docker
patterns (e.g. multi-stage builds) the working group reached a consensus
to revert the log level to npm defaults. If you need more verbose output, please
use one of the following methods to change the verbosity level.
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 info
...
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=info 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 ...
Image Variants
The node images come in many flavors, each designed for a specific use case.
All of the images contain pre-installed versions of node,
npm, and yarn. For each
supported architecture, the supported variants are different. In the file:
architectures, it lists all supported variants for all of
the architectures that we support now.
node:<version>
This is the defacto image. If you are unsure about what your needs are, you
probably want to use this one. It is designed to be used both as a throw away
container (mount your source code and start the container to start your app), as
well as the base to build other images off of. This tag is based off of
buildpack-deps.
buildpack-deps is designed for the average user of docker who has many images
on their system. It, by design, has a large number of extremely common Debian
packages. This reduces the number of packages that images that derive from it
need to install, thus reducing the overall size of all images on your system.
node:alpine
This image is based on the popular
Alpine Linux project, available in
the alpine official image. Alpine Linux is
much smaller than most distribution base images (~5MB), and thus leads to much
slimmer images in general.
This variant is highly recommended when final image size being as small as
possible is desired. The main caveat to note is that it does use
musl libc instead of
glibc and friends, so certain
software might run into issues depending on the depth of their libc
requirements. However, most software doesn't have an issue with this, so this
variant is usually a very safe choice. See
this Hacker News comment thread
for more discussion of the issues that might arise and some pro/con comparisons
of using Alpine-based images. One common issue that may arise is a missing shared
library required for use of process.dlopen. To add the missing shared libraries
to your image, adding the libc6-compat
package in your Dockerfile is recommended: apk add --no-cache libc6-compat
To minimize image size, it's uncommon for additional related tools
(such as gitorbash) to be included in Alpine-based images. Using this
image as a base, add the things you need in your own Dockerfile
(see the alpine image description for
examples of how to install packages if you are unfamiliar).
node:slim
This image does not contain the common packages contained in the default tag and
only contains the minimal packages needed to run node. Unless you are working
in an environment where only the Node.js image will be deployed and you have
space constraints, we highly recommend using the default image of this
repository.
License
License information for
the software contained in this image. License
information for the
Node.js Docker project.
Supported Docker versions
This image is officially supported on Docker version 1.9.1.
Support for older versions (down to 1.6) is provided on a best-effort basis.
Please see the Docker installation
documentation for details on how to
upgrade your Docker daemon.
Supported Node.js versions
This project will support Node.js versions as still under active support as per the Node.js release schedule.
Governance and Current Members
The Node.js Docker Image is governed by the Docker Working Group. See
GOVERNANCE.md
to learn more about the group's structure and CONTRIBUTING.md for guidance
about the expectations for all contributors to this project.
Docker Working Group Members
●Hans Kristian Flaatten (starefossen)
●Hugues Malphettes (hmalphettes)
●John Mitchell (jlmitch5)
●Peter Petrov (pesho)
Docker Working Group Collaborators
●Mikeal Rogers (mikeal)
●Laurent Goderre (LaurentGoderre)
●Simen Bekkhus (SimenB)
●Peter Dave Hello (PeterDaveHello)
Emeritus
Docker Working Group Members
●Christopher Horrell (chorrell)
About
Official Docker Image for Node.js 🐳 🐢 🚀
hub.docker.com/_/node/
Topics
docker-image
docker-node
node
docker
nodejs
Resources
Readme
License
MIT License
+ 69 contributors
Languages
●
Dockerfile
82.5%
●
Shell
15.7%
●
JavaScript
1.8%
●© 2020 GitHub, Inc.
●Terms
●Privacy
●
●Security
●Status
●Help
●Contact GitHub
●Pricing
●API
●Training
●Blog
●About
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session.
You signed out in another tab or window. Reload to refresh your session.
We use optional third-party analytics cookies to understand how you use GitHub.com so we can build better products.
Learn more.
We use optional third-party analytics cookies to understand how you use GitHub.com so we can build better products.
You can always update your selection by clicking Cookie Preferences at the bottom of the page.
For more information, see our Privacy Statement.
Essential cookies
We use essential cookies to perform essential website functions, e.g. they're used to log you in.
Learn more
Always active
Analytics cookies
We use analytics cookies to understand how you use our websites so we can make them better, e.g. they're used to gather information about the pages you visit and how many clicks you need to accomplish a task.
Learn more