Public | Automated Build

Last pushed: 10 days ago
Short Description
Full Description

NodeJS Builder image

This repository contains the source for building various versions of
the Node.JS application as a reproducible Docker image using

CentOS based builder images with Nodejs binaries from
The resulting image can be run using Docker.

If you are interested in using SCL-based nodejs binaries, try sti-nodejs


To build a simple nodejs example app application using standalone STI:

$ s2i build ryanj/centos7-s2i-nodejs:current pillarjs

Run the resulting image with Docker:

$ docker run -p 8080:8080 pillarjs

Access the application:

$ curl

Repository organization


    • Dockerfile

      CentOS based Dockerfile with 64bit nodejs binaries from

    • Dockerfile.sourcebuild

      CentOS based Dockerfile, nodejs binaries built from source (downloaded from

    • s2i/bin/

      This folder contains scripts that are run by STI:

      • assemble

        Used to install the sources into the location where the application
        will be run and prepare the application for deployment (eg. installing
        modules using npm, etc.)

      • run

        This script is responsible for running the application, by using the
        application web server.

      • usage*

        This script prints the usage of this image.

    • contrib/

      This folder contains a file with commonly used modules.

    • test/

      This folder contains the S2I
      test framework with simple Node.JS echo server.

      • test-app/

        A simple Node.JS echo server used for testing purposes by the S2I test framework.

      • run

        This script runs the S2I test framework.

Environment variables

Application developers can use the following environment variables to configure the runtime behavior of this image:

NAME Description
NPM_RUN Select an alternate / custom runtime mode, defined in your package.json file's scripts section (default: npm run "start")
NODE_ENV NodeJS runtime mode (default: "production")
HTTP_PROXY use an npm proxy during assembly
HTTPS_PROXY use an npm proxy during assembly

One way to define a set of environment variables is to include them as key value pairs in your repo's .s2i/environment file.

Example: DATABASE_USER=sampleUser

NOTE: Define your own "DEV_MODE":

The following package.json example includes a entry. You can define your own custom NPM_RUN scripts in your application's package.json file.

Using Docker's exec

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.

Using OpenShift's rsync

If you have deployed the container to OpenShift, you can use oc rsync to copy local files to a remote container running in an OpenShift pod.

Docker Pull Command
Source Repository