# openwhisk-runtime-nodejs **Repository Path**: mirrors_adobe/openwhisk-runtime-nodejs ## Basic Information - **Project Name**: openwhisk-runtime-nodejs - **Description**: Apache OpenWhisk Runtime NodeJS supports Apache OpenWhisk functions written in JavaScript for NodeJS - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-03-18 - **Last Updated**: 2026-09-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Apache OpenWhisk runtimes for Node.js [![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0) [![Build Status](https://travis-ci.com/apache/openwhisk-runtime-nodejs.svg?branch=master)](https://travis-ci.com/apache/openwhisk-runtime-nodejs) This repository contains sources files needed to build the Node.js runtimes for Apache OpenWhisk. The build system will produce a series of docker images for each runtime version. These images are used in the platform to execute Node.js actions. The following Node.js runtime versions (with kind & image labels) are generated by the build system: - Node.js 10.23.0 (`nodejs:10` & `openwhisk/action-nodejs-v10`) - Node.js 12.19.1 (`nodejs:12` & `openwhisk/action-nodejs-v12`) - Node.js 14.15.1 (`nodejs:14` & `openwhisk/action-nodejs-v14`) This README documents the build, customisation and testing of these runtime images. **Do you want to learn more about using Node.js actions to build serverless applications?** Please see the main project documentation [here](https://github.com/apache/openwhisk/blob/master/docs/actions-nodejs.md) for that information. ## Usage If the deployment of Apache OpenWhisk includes these images in the runtime manifest, use the `--kind` parameter to select the Node.js runtime version. ### Node.js v10 ``` wsk action update myAction myAction.js --kind nodejs:10 ``` ### Node.js v12 ``` wsk action update myAction myAction.js --kind nodejs:12 ``` ### Node.js v14 ``` wsk action update myAction myAction.js --kind nodejs:14 ``` ## Images All the runtime images are published by the project to Docker Hub @ [https://hub.docker.com/u/openwhisk](https://hub.docker.com/u/openwhisk) - [https://hub.docker.com/r/openwhisk/action-nodejs-v10](https://hub.docker.com/r/openwhisk/action-nodejs-v10) - [https://hub.docker.com/r/openwhisk/action-nodejs-v12](https://hub.docker.com/r/openwhisk/action-nodejs-v12) - [https://hub.docker.com/r/openwhisk/action-nodejs-v14](https://hub.docker.com/r/openwhisk/action-nodejs-v14) These images can be used to execute Node.js actions on any deployment of Apache OpenWhisk, even those without those images defined the in runtime manifest, using the `--docker` action parameter. ``` wsk action update myAction myAction.js --docker openwhisk/action-nodejs-v12 ``` If you build a custom version of the images, pushing those an external Docker Hub repository will allow you to use those on the Apache OpenWhisk deployment. ### Runtimes Manifest Available runtimes in Apache OpenWhisk are defined using the runtimes manifest in this file: [runtimes.json](https://github.com/apache/openwhisk/blob/master/ansible/files/runtimes.json#L16-L72) Modify the manifest and re-deploy the platform to pick up local images changes. ## Development Dockerfiles for runtime images are defined in the `core` directory. Each runtime version folder has a custom `Dockerfile` and `package.json`. If you need to add extra dependencies to a runtime version - modify these files. The `core/nodejsActionBase` folder contains the Node.js app server used to implement the [action interface](https://github.com/apache/openwhisk/blob/master/docs/actions-new.md#action-interface), used by the platform to inject action code into the runtime and fire invocation requests. This common code is used in all runtime versions. ### Build - Run the `distDocker` command to generate local Docker images for the different runtime versions. ``` ./gradlew core:nodejs10Action:distDocker ./gradlew core:nodejs12Action:distDocker ./gradlew core:nodejs14Action:distDocker ``` This will return the following runtime images with the following names: `action-nodejs-v10`, `action-nodejs-v12` and `action-nodejs-v14`. ### Testing - Install project dependencies from the top-level Apache OpenWhisk [project](https://github.com/apache/openwhisk), which ensures correct versions of dependent libraries are available in the Maven cache. ``` ./gradlew install ``` *This command **MUST BE** run from the directory containing the main Apache OpenWhisk [repository](https://github.com/apache/openwhisk), not this repository's directory.* - Build the local Docker images for the runtime versions (see the instructions above). - Build the custom Docker images used in local testing. ``` ./gradlew tests:dat:docker:nodejs10docker:distDocker ./gradlew tests:dat:docker:nodejs12docker:distDocker ./gradlew tests:dat:docker:nodejs14docker:distDocker ``` - Run the project tests. ``` ./gradlew :tests:test ```