Sign inSign up

startx/sv-nodejs

By startx

•Updated over 1 year ago

Container providing nodejs application engine on fedora / centos / redhat

Image
1

10K+

startx/sv-nodejs repository overview

⁠Docker OS Images : NODEJS

STARTX Profile licence Sources last commit Build Status Top language Code size

Dockerhub Registry Docker nodejs pulls Docker Repository on Quay

Startx nodejs is a base container used for web services and applications published in Dockerhub registry⁠. This container contain :

  • fedora system envelope
  • core OS rpm (kernel, libs) updated every week
  • fundamentals tools (ex: pwgen, tar, zip) updated every week
  • Nodejs + npm + express webserver and fundamentals modules (nodejs release depend on the flavour you use, read down for more information)
  • usefull tools (psmisc, procps, coreutils, findutils, wget, curl, vi, bash-completion) only for the :latest and :devel flavour.

You can use Startx Nodejs image in many ways :

See more applications builders and sample on startx docker images repository⁠

⁠Container flavours

⁠Running this image

If you want to be guided on setting-up and installing various containers engines (docker⁠, podman⁠, s2i⁠, dockerEE⁠, kubernetes⁠, openshift⁠) you can read ours containers engines guidelines⁠.

⁠Running using docker
docker run -it -p 9221:8080 --name="example-nodejs" startx/sv-nodejs
  • Connect to your local application
firefox http://localhost:9221
⁠Running using docker-compose
  • Create a docker-compose.yml file with the following content
nodejs:
  image: startx/sv-nodejs:latest
  container_name: "example-nodejs"
  ports:
    - "9221:8080"
  • Execute the following command
docker-compose up -d
docker-compose logs
  • Connect to your local application
firefox http://localhost:9221
⁠Using this image as Openshift Build image
⁠Openshift images streams

Openshift cluster administrator can offer this image and all its flavour to all consumers. You can import our openshift images stream⁠ in your openshift project.

You must be cluster-admin to add this image to the openshift project. If not, you can add it to your own project (skip the oc project openshift command in the next script)

# swith to the openshift project
oc project openshift
# Add image streams to the service catalog (project or cluster-wide scope)
oc create -f https://raw.githubusercontent.com/startxfr/docker-images/master/Services/nodejs/openshift-imageStreams.yml
⁠Openshift builder template

Openshift cluster administrator can add a build and deploy template to their consumers. As an administrator, you can import our openshift builder template⁠ in your openshift project.

You must be cluster-admin to add this image to the openshift project. If not, you can add it to your own project (skip the oc project openshift command in the next script)

# swith to the openshift project
oc project openshift
# Add this template to the service catalog (project or cluster-wide scope)
oc create -f https://raw.githubusercontent.com/startxfr/docker-images/master/Services/nodejs/openshift-template-build.yml

You can then build an application

# create an example project
oc new-project example
# start a new application
oc process -f startx-nodejs-build-template \
    -p APP_NAME=myapp \
| oc create -f -
⁠Openshift deploy template

Openshift cluster administrator can add a deploy template to their consumers. As an administrator, you can import our openshift deploy template⁠ in your openshift project.

You must be cluster-admin to add this image to the openshift project. If not, you can add it to your own project (skip the oc project openshift command in the next script)

# swith to the openshift project
oc project openshift
# Add this template to the service catalog (project or cluster-wide scope)
oc create -f https://raw.githubusercontent.com/startxfr/docker-images/master/Services/nodejs/openshift-template-deploy.yml

You can then deploy an application

# create a example project
oc new-project example
# start a new application
oc process -f startx-nodejs-deploy-template \
    -p APP_NAME=myapp \
| oc create -f -
⁠Using this image as S2I builder

Create your local project (skip if you already are in a project diretory with a run bash script)

# Create a project directory
mkdir example-project
cd example-project
# create a run script
cat << "EOF"
var http = require('http');
var server = http.createServer(function (request, response) {
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.end("My application is " + process.env.SX_SUMMARY + "\n");
});
server.listen(8080);
console.log("Server is running " + process.env.SX_ID + ":" + process.env.SX_VERSION);
EOF > app.js

Then you can use this image as an s2i builder image

# With your current directory application code
s2i build . startx/sv-nodejs:latest startx-nodejs-myapp
docker run --rm -d -p 9221:8080 startx-nodejs-myapp
# With startx application sample code repository
s2i build https://github.com/startxfr/docker-images-example-nodejs startx/sv-nodejs startx-nodejs-sample
docker run --rm -d -p 9221:8080 startx-nodejs-sample
⁠Using this image as base container

You can use this Dockerfile template to start a new personalized container based on this container. Create a file named Dockerfile in your project directory and copy this content inside. See docker guide⁠ for instructions on how to use this file.

FROM startx/sv-nodejs:latest
#... your container specifications

⁠Environment variable

VariableTypeDefaultDescription
SX_VERSIONstringlatestcontainer version
SX_TYPEstringserviceContainer family (os, service, application). could be enhanced
SX_SERVICEstringnodejsDefine the type of service or application provided
SX_IDautostartx/sv-nodejsContainer ID coresponding to the image repository
SX_NAMEautoyesContainer name
SX_SUMMARYautoyesContainer purpose description
SX_VERBOSEboolnoDisplay information about the execution
SX_DEBUGboolnoDisplay debug informations during execution
APP_PATHstring/appPath to the application
LOG_PATHstring/var/log/httpdDestination path to the log produced by the webserver
DATA_PATHstring/dataDestination path to the data manipulated by the application
APP_MAINstring/app/app.jsMain application entrypoint
SX_S2IDIRstring/tmpDestination path to the application pushed via s2i process

⁠For advanced users

You can contribute or start this container initiative locally. Follow theses instructions⁠ to setup a working environment.

This section will help you if you want to :

  • Get latest version of this container Service source code
  • Enhance and share your container improvement by adding instruction in Dockefile
⁠Build & run a container using docker
  1. Jump into the container directory with cd Services/nodejs
  2. Build the container using docker build -t startx-nodejs .
  3. Run this container
    • Interactively with docker run -it startx-nodejs. If you add a second parameter (like /bin/bash) to will run this command instead of the default entrypoint. Usefull to interact with this container (ex: /bin/bash, /bin/ps -a, /bin/df -h,...)
    • As a daemon with docker run -d -p 9221:8080 startx-nodejs
⁠Build & run a container using docker-compose
  1. Jump into the container directory with cd Services/nodejs
  2. Run this container
    • Interactively with docker-compose up Startup logs appears and escaping this command stop the container
    • As a daemon with docker-compose up -d. Container startup logs can be read using docker-compose logs

Tag summary

Content type

Image

Digest

sha256:c0f875b5b…

Size

220.7 MB

Last updated

over 1 year ago

docker pull startx/sv-nodejs