Git Product home page Git Product logo

centos7-s2i-nodejs's Introduction

OpenShift Builder Images for Node.js Applications

Build Status

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.

docker hub stats

Versions

Node.js versions currently provided.

Version Tag
12.2.0 (12.x, latest)
11.0.0 (11.x, latest)
10.12.0 (10.x)
9.11.1 (9.x)
8.12.0 (8.x, Carbon)
7.10.1 (7.x)
6.11.4 (6.x, Boron)
5.12.0 (5.x)
4.8.4 (4.x, Argon)

Usage

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.

OpenShift

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

OpenShift Catalog

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

Docker

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/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

Configuration

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

Debug Mode

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"

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 your application to OpenShift, you can use oc rsync to copy local files to a remote container running in an OpenShift pod.

centos7-s2i-nodejs's People

Contributors

bparees avatar crmarques avatar danbev avatar david-martin avatar gabemontero avatar gastaldi avatar grdryn avatar helio-frota avatar lance avatar lholmquist avatar liangxia avatar sspeiche avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.