So you want to contribute to the NodeSource Docker Images, thats great!
We appreciate any and all feedback. This document will serve as a guide to preparing, building, and testing these images before submitting a PR against this repo.
- Node argon (v4)
- Latest release of dante
- Internet Access
These images are built from templates located in /dockerfiles
. There are two sets of images built:
- Base images - These images install common packages
- Node Images - These images start from the base images and install the specific version of Node requires and then update the OS.
The templates are populated according to the file dockerfiles/dists.js
, which is automatically generated by tools/gen-dists.sh
.
Once built, the images are tested by running dante test
.
Every Dockerfile generated by this repo must be tested. In order to accomplish this, we generate a file inventory.yml
which is consumed by the testing framework dante
. These tests are aumtomatically run at the end of ./tools/build.sh
. If you would like to run them manually, execute the following:
dante test
Note: The base images and node images have two separate
inventory.yml
files and require two separate invocations ofdante test
. Be warned, these tests may take several hours to complete.
An early decision of this project was to separate tasks into individual scripts that can be run independently of one another. This resulted in the tools
directoy becoming quite daunting. Luckily, everything is strung together by a single script, build.sh
.
This file stitches together all of the scripts necessary to generate and test these images. This is a good place to start reading if you are interested in learning how these images are created, or if you are interested in modifying the build process.
If you are interested in submitting a PR against this repo, please do the following:
- Run
./tools/build.sh
- Retrieve all logs created from
./logs/[date]/*.md
. Create gists for each log and link to them from the PR. - Delete the logs directory (logs should only be checked in for builds that push the the public repo)