This is no longer supported, please consider using ubi8/nodejs-10 instead.
This repository contains sources for an s2i builder image, based on CentOS7 and Node.js RPM releases from https://github.com/nodeshift/node-rpm. The RPMs and this builder image are the upstream sources for the Red Hat OpenShift Application Runtimes Node.js distribution.
Node.js versions currently provided.
Version | Tag |
---|---|
12.11.1 |
(12.x, latest) |
10.16.3 |
(10.x, Dubnium) |
8.16.2 |
(8.x, Carbon) |
Using this image with OpenShift oc
command line tool, or with s2i
directly, will
assemble your application source with its required dependencies, creating a new
container image. This image contains your Node.js application and all required dependencies,
and can be run either on OpenShift or directly on Docker.
The oc
command-line tool can be
used to start a build, layering your desired nodejs REPO_URL
sources into a centos7
image with your selected RELEASE
of Node.js via the following command format:
oc new-app nodeshift/centos7-s2i-nodejs:latest~https://github.com/nodeshift/nodejs-rest-http
With OpenShift, it is also possible to import this builder image into the online Catalog, so that applications can be created and deployed using this Node.js image through the web-based user interface. To import the images, run the following openshift command.
oc create -f imagestreams/nodejs-centos7.json
The Source2Image cli tools are available as a standalone project, allowing you to run your application directly in Docker.
This example will produce a new Docker image named webapp
:
s2i build https://github.com/nodeshift-starters/nodejs-rest-http nodeshift/centos7-s2i-nodejs:latest webapp
Then you can run the application image like this.
docker run -p 8080:8080 --rm -it webapp
Use the following environment variables to configure the runtime behavior of the application image created from this builder image.
NAME | Description |
---|---|
NPM_RUN | Select an alternate / custom runtime mode, defined in your package.json file's scripts section (default: npm run "start") |
NPM_MIRROR | Sets the npm registry URL |
NODE_ENV | Node.js runtime mode (default: "production") |
HTTP_PROXY | use an npm proxy during assembly |
HTTPS_PROXY | use an npm proxy during assembly |
NO_PROXY | set URLs that should be excluded from proxying during assembly |
One way to define a set of environment variables is to include them as key value pairs
in a .s2i/environment
file in your source repository.
Example: DATABASE_USER=sampleUser
When NODE_ENV
is set to development
or DEV_MODE
is set to true, your Node.js application
will be started using nodemon
.
npx nodemon --inspect="$DEBUG_PORT"
To change your source code in a running container, use Docker's exec command:
docker exec -it <CONTAINER_ID> /bin/bash
After you Docker exec into the running container, your current directory is set
to /opt/app-root/src
, where the source code for your application is located.
If you have deployed your application to OpenShift, you can use oc rsync to copy local files to a remote container running in an OpenShift pod.