Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sclorg/s2i-nodejs-container
NodeJS images based on Red Hat Software Collections and intended for OpenShift and general usage, that provide a platform for building and running NodeJS applications. Users can choose between Red Hat Enterprise Linux, Fedora, and CentOS based images.
https://github.com/sclorg/s2i-nodejs-container
centos container docker dockerfile fedora javascript openshift rhel s2i
Last synced: 4 days ago
JSON representation
NodeJS images based on Red Hat Software Collections and intended for OpenShift and general usage, that provide a platform for building and running NodeJS applications. Users can choose between Red Hat Enterprise Linux, Fedora, and CentOS based images.
- Host: GitHub
- URL: https://github.com/sclorg/s2i-nodejs-container
- Owner: sclorg
- License: apache-2.0
- Created: 2015-02-04T19:26:46.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2025-01-08T10:49:04.000Z (14 days ago)
- Last Synced: 2025-01-11T11:04:31.217Z (11 days ago)
- Topics: centos, container, docker, dockerfile, fedora, javascript, openshift, rhel, s2i
- Language: Shell
- Homepage: http://softwarecollections.org
- Size: 656 KB
- Stars: 165
- Watchers: 21
- Forks: 287
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
NodeJS container images
====================[![Build and push images to Quay.io registry](https://github.com/sclorg/s2i-nodejs-container/actions/workflows/build-and-push.yml/badge.svg)](https://github.com/sclorg/s2i-nodejs-container/actions/workflows/build-and-push.yml)
Images available on Quay are:
* Fedora [nodejs-18](https://quay.io/repository/fedora/nodejs-18)
* Fedora [nodejs-20](https://quay.io/repository/fedora/nodejs-20)
* Fedora [nodejs-22](https://quay.io/repository/fedora/nodejs-22)This repository contains the source for building various versions of
the Node.JS application as a reproducible container image using
[source-to-image](https://github.com/openshift/source-to-image).
Users can choose between RHEL, CentOS and Fedora based builder images.
The resulting image can be run using [podman](https://github.com/containers/libpod).For more information about using these images with OpenShift, please see the
official [OpenShift Documentation](https://docs.okd.io/latest/using_images/s2i_images/nodejs.html).For more information about contributing, see
[the Contribution Guidelines](https://github.com/sclorg/welcome/blob/master/contribution.md).
For more information about concepts used in these container images, see the
[Landing page](https://github.com/sclorg/welcome).Versions
---------------
Node.JS versions currently provided are:
* [NodeJS 18](18)
* [NodeJS 18-minimal](18-minimal)
* [NodeJS 20](20)
* [NodeJS 20-minimal](20-minimal)
* [NodeJS 22](22)
* [NodeJS 22-minimal](22-minimal)RHEL versions currently supported are:
* RHEL8
* RHEL9CentOS Stream versions currently available are:
* CentOS Stream 9
* CentOS Stream 10Installation
---------------
To build a Node.JS image, choose either the CentOS or RHEL based image:
* **RHEL based image**These images are available in the [Red Hat Container Catalog](https://access.redhat.com/containers/#/registry.access.redhat.com/rhel8/nodejs-20).
To download it run:```
$ podman pull registry.access.redhat.com/rhel8/nodejs-18
```To build a RHEL based Node.JS image, you need to run the build on a properly
subscribed RHEL machine.```
$ git clone --recursive https://github.com/sclorg/s2i-nodejs-container.git
$ cd s2i-nodejs-container
$ git submodule update --init
$ make build TARGET=rhel8 VERSIONS=18
```* **CentOS Stream based image**
This image is available on DockerHub. To download it run:
```
$ podman pull quay.io/sclorg/nodejs-20-c9s
```To build a Node.JS image from scratch run:
```
$ git clone --recursive https://github.com/sclorg/s2i-nodejs-container.git
$ cd s2i-nodejs-container
$ git submodule update --init
$ make build TARGET=c9s VERSIONS=20
```Note: while the installation steps are calling `podman`, you can replace any such calls by `docker` with the same arguments.
**Notice: By omitting the `VERSIONS` parameter, the build/test action will be performed
on all provided versions of Node.JS.**Usage
-----For information about usage of Dockerfile for NodeJS 18,
see [usage documentation](18/README.md).For information about usage of Dockerfile for NodeJS 18 minimal,
see [usage documentation](18-minimal/README.md).For information about usage of Dockerfile for NodeJS 20,
see [usage documentation](20/README.md).For information about usage of Dockerfile for NodeJS 20 minimal,
see [usage documentation](20-minimal/README.md).For information about usage of Dockerfile for NodeJS 22,
see [usage documentation](22/README.md).For information about usage of Dockerfile for NodeJS 22 minimal,
see [usage documentation](22-minimal/README.md).Test
----
This repository also provides a [S2I](https://github.com/openshift/source-to-image) test framework,
which launches tests to check functionality of a simple Node.JS application built on top of the s2i-nodejs image.Users can choose between testing a Node.JS test application based on a RHEL or CentOS Stream image.
* **RHEL based image**
To test a RHEL8 based Node.JS image, you need to run the test on a properly
subscribed RHEL machine.```
$ cd s2i-nodejs-container
$ git submodule update --init
$ make test TARGET=rhel8 VERSIONS=20
```* **CentOS Stream based image**
```
$ cd s2i-nodejs-container
$ git submodule update --init
$ make test TARGET=c9s VERSIONS=20
```**Notice: By omitting the `VERSIONS` parameter, the build/test action will be performed
on all provided versions of Node.JS.**Repository organization
------------------------
* **``*** **Dockerfile.rhel8**
RHEL based Dockerfile. In order to perform build or test actions on this
Dockerfile you need to run the action on a properly subscribed RHEL machine.* **`s2i/bin/`**
This folder contains scripts that are run by [S2I](https://github.com/openshift/source-to-image):
* **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](https://github.com/openshift/source-to-image)
test framework with simple Node.JS echo server.* **`test-app/`**
A simple Node.JS echo server used for testing purposes by the [S2I](https://github.com/openshift/source-to-image) test framework.
* **run**
This script runs the [S2I](https://github.com/openshift/source-to-image) test framework.