Consolidate package.json since they are identical modulo a name which is not semantically meaningful.
diff --git a/core/nodejs10Action/build.gradle b/core/nodejs10Action/build.gradle
index c1b302b..b52bdaf 100644
--- a/core/nodejs10Action/build.gradle
+++ b/core/nodejs10Action/build.gradle
@@ -26,6 +26,7 @@
ext.dockerImageName = 'action-nodejs-v10'
apply from: '../../gradle/docker.gradle'
+distDocker.dependsOn 'copyPackageJson'
distDocker.dependsOn 'copyProxy'
distDocker.dependsOn 'copyRunner'
distDocker.dependsOn 'copyService'
@@ -35,6 +36,11 @@
distDocker.dependsOn 'copyBuildTemplate'
distDocker.finalizedBy('cleanup')
+task copyPackageJson(type: Copy) {
+ from '../nodejsActionBase/package.json'
+ into '.'
+}
+
task copyProxy(type: Copy) {
from '../nodejsActionBase/app.js'
into '.'
@@ -71,6 +77,7 @@
}
task cleanup(type: Delete) {
+ delete 'package.json'
delete 'app.js'
delete 'runner.js'
delete 'src'
diff --git a/core/nodejs10Action/package.json b/core/nodejs10Action/package.json
deleted file mode 100644
index d502984..0000000
--- a/core/nodejs10Action/package.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "name": "action-nodejs-v10",
- "version": "1.0.0",
- "description": "Apache OpenWhisk NodeJS Runtime",
- "repository": {
- "type": "git",
- "url": "git@github.com:apache/openwhisk-runtime-nodejs.git"
- },
- "license": "Apache-2.0",
- "dependencies": {
- "openwhisk": "3.21.2",
- "body-parser": "1.18.3",
- "express": "4.16.4",
- "serialize-error": "3.0.0",
- "redis": "2.8.0",
- "uuid": "3.3.0"
- }
-}
diff --git a/core/nodejs12Action/build.gradle b/core/nodejs12Action/build.gradle
index 203a5c1..ae773f6 100644
--- a/core/nodejs12Action/build.gradle
+++ b/core/nodejs12Action/build.gradle
@@ -26,6 +26,7 @@
ext.dockerImageName = 'action-nodejs-v12'
apply from: '../../gradle/docker.gradle'
+distDocker.dependsOn 'copyPackageJson'
distDocker.dependsOn 'copyProxy'
distDocker.dependsOn 'copyRunner'
distDocker.dependsOn 'copyService'
@@ -35,6 +36,11 @@
distDocker.dependsOn 'copyBuildTemplate'
distDocker.finalizedBy('cleanup')
+task copyPackageJson(type: Copy) {
+ from '../nodejsActionBase/package.json'
+ into '.'
+}
+
task copyProxy(type: Copy) {
from '../nodejsActionBase/app.js'
into '.'
@@ -71,6 +77,7 @@
}
task cleanup(type: Delete) {
+ delete 'package.json'
delete 'app.js'
delete 'runner.js'
delete 'src'
diff --git a/core/nodejs12Action/package.json b/core/nodejs12Action/package.json
deleted file mode 100644
index 1849c3f..0000000
--- a/core/nodejs12Action/package.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "name": "action-nodejs-v12",
- "version": "1.0.0",
- "description": "Apache OpenWhisk NodeJS Runtime",
- "repository": {
- "type": "git",
- "url": "git@github.com:apache/openwhisk-runtime-nodejs.git"
- },
- "license": "Apache-2.0",
- "dependencies": {
- "openwhisk": "3.21.2",
- "body-parser": "1.18.3",
- "express": "4.16.4",
- "serialize-error": "3.0.0",
- "redis": "2.8.0",
- "uuid": "3.3.0"
- }
-}
diff --git a/core/nodejs14Action/build.gradle b/core/nodejs14Action/build.gradle
index da173e2..85e0796 100644
--- a/core/nodejs14Action/build.gradle
+++ b/core/nodejs14Action/build.gradle
@@ -26,6 +26,7 @@
ext.dockerImageName = 'action-nodejs-v14'
apply from: '../../gradle/docker.gradle'
+distDocker.dependsOn 'copyPackageJson'
distDocker.dependsOn 'copyProxy'
distDocker.dependsOn 'copyRunner'
distDocker.dependsOn 'copyService'
@@ -35,6 +36,11 @@
distDocker.dependsOn 'copyBuildTemplate'
distDocker.finalizedBy('cleanup')
+task copyPackageJson(type: Copy) {
+ from '../nodejsActionBase/package.json'
+ into '.'
+}
+
task copyProxy(type: Copy) {
from '../nodejsActionBase/app.js'
into '.'
@@ -71,6 +77,7 @@
}
task cleanup(type: Delete) {
+ delete 'package.json'
delete 'app.js'
delete 'runner.js'
delete 'src'
diff --git a/core/nodejs14Action/package.json b/core/nodejs14Action/package.json
deleted file mode 100644
index b06d6a0..0000000
--- a/core/nodejs14Action/package.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "name": "action-nodejs-v14",
- "version": "1.0.0",
- "description": "Apache OpenWhisk NodeJS Runtime",
- "repository": {
- "type": "git",
- "url": "git@github.com:apache/openwhisk-runtime-nodejs.git"
- },
- "license": "Apache-2.0",
- "dependencies": {
- "openwhisk": "3.21.2",
- "body-parser": "1.18.3",
- "express": "4.16.4",
- "serialize-error": "3.0.0",
- "redis": "2.8.0",
- "uuid": "3.3.0"
- }
-}
diff --git a/core/nodejs8Action/build.gradle b/core/nodejs8Action/build.gradle
index a671ef8..e9cdc7b 100644
--- a/core/nodejs8Action/build.gradle
+++ b/core/nodejs8Action/build.gradle
@@ -26,6 +26,7 @@
ext.dockerImageName = 'action-nodejs-v8'
apply from: '../../gradle/docker.gradle'
+distDocker.dependsOn 'copyPackageJson'
distDocker.dependsOn 'copyProxy'
distDocker.dependsOn 'copyRunner'
distDocker.dependsOn 'copyService'
@@ -35,6 +36,11 @@
distDocker.dependsOn 'copyBuildTemplate'
distDocker.finalizedBy('cleanup')
+task copyPackageJson(type: Copy) {
+ from '../nodejsActionBase/package.json'
+ into '.'
+}
+
task copyProxy(type: Copy) {
from '../nodejsActionBase/app.js'
into '.'
@@ -71,6 +77,7 @@
}
task cleanup(type: Delete) {
+ delete 'package.json'
delete 'app.js'
delete 'runner.js'
delete 'src'
diff --git a/core/nodejs8Action/package.json b/core/nodejs8Action/package.json
deleted file mode 100644
index bfe1419..0000000
--- a/core/nodejs8Action/package.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "name": "action-nodejs-v8",
- "version": "1.0.0",
- "description": "Apache OpenWhisk NodeJS Runtime",
- "repository": {
- "type": "git",
- "url": "git@github.com:apache/openwhisk-runtime-nodejs.git"
- },
- "license": "Apache-2.0",
- "dependencies": {
- "openwhisk": "3.21.2",
- "body-parser": "1.18.2",
- "express": "4.16.2",
- "serialize-error": "3.0.0",
- "redis": "2.8.0",
- "uuid": "3.3.0"
- }
-}
diff --git a/core/typescript37Action/.dockerignore b/core/typescript37Action/.dockerignore
new file mode 100644
index 0000000..a1d03cb
--- /dev/null
+++ b/core/typescript37Action/.dockerignore
@@ -0,0 +1,13 @@
+*.*~
+*.yaml
+*.tmpl
+*.gradle
+.dockerignore
+.project
+.settings
+build.xml
+Dockerfile
+logs
+node_modules
+package-lock.json
+test.js
diff --git a/core/typescript37Action/Dockerfile b/core/typescript37Action/Dockerfile
index 0852224..4b5b0c4 100644
--- a/core/typescript37Action/Dockerfile
+++ b/core/typescript37Action/Dockerfile
@@ -14,34 +14,46 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
+
FROM golang:1.12 as builder
RUN env CGO_ENABLED=0 go get github.com/apache/openwhisk-runtime-go/main \
&& mv /go/bin/main /bin/proxy
+
FROM node:12.1.0-stretch
-ENV TYPESCRIPT_VERSION=3.7.4
COPY --from=builder /bin/proxy /bin/proxy
+
+ENV TYPESCRIPT_VERSION=3.7.4
+ENV OW_COMPILER=/bin/compile
+ENV OW_LOG_INIT_ERROR=1
+ENV OW_WAIT_FOR_ACK=1
+ENV OW_EXECUTION_ENV=openwhisk/typescript3.7
+
+# Initial update and some basics.
+#
RUN apt-get update && apt-get install -y \
imagemagick \
graphicsmagick \
unzip \
&& rm -rf /var/lib/apt/lists/* &&\
mkdir -p /app/action
-RUN cd /app ;\
- npm install -g yarn ;\
- npm install -g typescript@${TYPESCRIPT_VERSION} ;\
- echo '{"private":true}' > package.json ;\
- npm install --save --no-package-lock --production \
- @types/node@13.13.5 \
- openwhisk@3.21.2 \
- redis@2.8.0 \
- uuid@3.0.0 \
- && npm cache clean --force
+
+# Add sources and copy the package.json to root container,
+# so npm packages from user functions take precendence.
+#
WORKDIR /app
-EXPOSE 8080
COPY bin/compile /bin/compile
COPY lib/launcher.ts /lib/launcher.ts
-ENV OW_COMPILER=/bin/compile
-ENV OW_LOG_INIT_ERROR=1
-ENV OW_WAIT_FOR_ACK=1
-ENV OW_EXECUTION_ENV=openwhisk/typescript3.7
+COPY package.json /
+
+# Customize runtime with additional packages.
+#
+RUN cd / && npm install -g \
+ yarn \
+ typescript@${TYPESCRIPT_VERSION} \
+ && npm install --no-package-lock --production @types/node@13.13.5 \
+ && npm install --no-package-lock --production \
+ && npm cache clean --force
+
+EXPOSE 8080
+
ENTRYPOINT ["/bin/proxy"]
diff --git a/core/typescript37Action/build.gradle b/core/typescript37Action/build.gradle
index 0476518..1a17b56 100644
--- a/core/typescript37Action/build.gradle
+++ b/core/typescript37Action/build.gradle
@@ -17,3 +17,14 @@
ext.dockerImageName = 'action-typescript-v3.7'
apply from: '../../gradle/docker.gradle'
+
+distDocker.dependsOn 'copyPackageJson'
+
+task copyPackageJson(type: Copy) {
+ from '../nodejsActionBase/package.json'
+ into '.'
+}
+
+task cleanup(type: Delete) {
+ delete 'package.json'
+}