projectriff / builder Goto Github PK
View Code? Open in Web Editor NEWHome of the buildpack builder for riff
License: Apache License 2.0
Home of the buildpack builder for riff
License: Apache License 2.0
Once knative/build#542 is in a release we can reenable build caches.
Follow up to #26
Dependabot couldn't parse the go.mod found at /go.mod
.
The error Dependabot encountered was:
go: github.com/cloudfoundry/[email protected] requires
github.com/cloudfoundry/[email protected] requires
github.com/cloudfoundry/[email protected] requires
gopkg.in/fatih/[email protected]: unrecognized import path "gopkg.in/fatih/color.v1" (parse https://gopkg.in/fatih/color.v1?go-get=1: no go-import meta tags ())
The commit ID itself is not good enough to capture the "identity" of the builder contents, because there could be no new commit to this very repo while the buildpacks referenced in builder-riff.toml
themselves could have changed.
We need something that forces a new filename/docker image name for each build (so timestamps, travis build number, etc) or a combination of that. The git commit id can still be included, but it is not a bijective indication of what's baked in
Dependabot couldn't parse the go.mod found at /go.mod
.
The error Dependabot encountered was:
go: github.com/cloudfoundry/[email protected] requires
github.com/onsi/[email protected] requires
gopkg.in/[email protected]: reading gopkg.in/fsnotify.v1/go.mod at revision v1.4.7: git fetch -f origin refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in /opt/go/gopath/pkg/mod/cache/vcs/d88d5c0075d61dfe1daeb3f77aa4107783369b9103c5fdefa251fd900bf87328: exit status 128:
remote: Cannot obtain refs from GitHub: cannot talk to GitHub: Get https://github.com/fsnotify/fsnotify.git/info/refs?service=git-upload-pack: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
fatal: unable to access 'https://gopkg.in/fsnotify.v1/': The requested URL returned error: 502
The module path github.com/cloudfoundry/node-engine-cnb
found in your /go.mod
doesn't match the actual path github.com/paketo-buildpacks/node-engine
found in the dependency's go.mod
.
Updating the module path in your go.mod
to github.com/paketo-buildpacks/node-engine
should resolve this issue.
Dependabot couldn't parse the go.mod found at /go.mod
.
The error Dependabot encountered was:
go: github.com/cloudfoundry/[email protected] requires
github.com/cloudfoundry/[email protected] requires
cloud.google.com/[email protected] requires
honnef.co/go/[email protected]: unrecognized import path "honnef.co/go/tools" (https fetch: Get https://honnef.co/go/tools?go-get=1: EOF)
This is the error:
Warning: analyzed TOML file not found at './analyzed.toml'
...
Error: failed to export: cannot reuse 'org.cloudfoundry.openjdk:openjdk-jre', previous image has no metadata for layer 'org.cloudfoundry.openjdk:openjdk-jre'
The buildtemplate for application build needs to add an "-analyzed=/layers/analyzed.toml" arg for the analyze and export steps.
This output from the logs look suspicious:
default/upper-00001-27zqg[build-step-build]: -----> riff Buildpack 1.0.0-BUILD-SNAPSHOT
default/upper-00001-27zqg[build-step-build]: -----> riff Java Invoker 0.1.2: Reusing cached launch layer
default/upper-00001-27zqg[build-step-build]: -----> Process types:
default/upper-00001-27zqg[build-step-build]: web: java -jar /workspace/io.projectriff.riff/riff-invoker-java/java-function-invoker-0.1.2-exec.jar $JAVA_OPTS --function.uri='file:///workspace/app?handler='
default/upper-00001-27zqg[build-step-build]: function: java -jar /workspace/io.projectriff.riff/riff-invoker-java/java-function-invoker-0.1.2-exec.jar $JAVA_OPTS --function.uri='file:///workspace/app?handler='
The failure is:
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: Nov 06, 2018 8:33:41 PM org.springframework.boot.SpringApplication reportFailure
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: SEVERE: Application run failed
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: java.lang.IllegalArgumentException: expected format: <jarLocation>?handler=<className>[&main=<className>]
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: at org.springframework.util.Assert.isTrue(Assert.java:118)
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: at io.projectriff.invoker.FunctionEnvironmentPostProcessor.postProcessEnvironment(FunctionEnvironmentPostProcessor.java:51)
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: at org.springframework.boot.context.config.ConfigFileApplicationListener.onApplicationEnvironmentPreparedEvent(ConfigFileApplicationListener.java:175)
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: at org.springframework.boot.context.config.ConfigFileApplicationListener.onApplicationEvent(ConfigFileApplicationListener.java:161)
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:127)
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:74)
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:54)
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:371)
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: at org.springframework.boot.SpringApplication.run(SpringApplication.java:330)
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: at org.springframework.cloud.function.deployer.ContextRunner$1.run(ContextRunner.java:74)
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: at java.lang.Thread.run(Thread.java:748)
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]:
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: Exception in thread "main" java.lang.reflect.InvocationTargetException
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: at java.lang.reflect.Method.invoke(Method.java:498)
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51)
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: Caused by: java.lang.IllegalArgumentException: expected format: <jarLocation>?handler=<className>[&main=<className>]
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: at org.springframework.util.Assert.isTrue(Assert.java:118)
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: at io.projectriff.invoker.FunctionEnvironmentPostProcessor.postProcessEnvironment(FunctionEnvironmentPostProcessor.java:51)
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: at org.springframework.boot.context.config.ConfigFileApplicationListener.onApplicationEnvironmentPreparedEvent(ConfigFileApplicationListener.java:175)
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: at org.springframework.boot.context.config.ConfigFileApplicationListener.onApplicationEvent(ConfigFileApplicationListener.java:161)
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:127)
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:74)
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:54)
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:371)
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: at org.springframework.boot.SpringApplication.run(SpringApplication.java:330)
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: at org.springframework.cloud.function.deployer.ContextRunner$1.run(ContextRunner.java:74)
default/upper-00001-deployment-5685c9b757-kl8tn[user-container]: at java.lang.Thread.run(Thread.java:748)
I had not realized until now that the build of riff-buildpack-group
depended on the version of the locally installed pack
. My local setup did not work until @ericbottard made me realize I was using a too outdated version of pack
.
One thing we could do at least is to check whether we're meeting the minimal compatible pack
version for the riff buildpack/builder to work before building anything.
For users who would like to understand or experiment with their own builder, let's document the correct version of pack (or wire it into the make per #30)
This project could run tests similar to the ones run by FATS, building some functions but using pack
.
In particular, this would make sure that
Having the wrong version of pack can lead to some confusing errors.
Either use it as a lib, or having the ITs pull the version they want
buildpacks/lifecycle#388
please close if this an issue with lifecycle 0.9.1 and not with the respective updates to buildpacks.
We should rename projectriff/buildpack
to projectriff/build
to be less confusing and also consistent with pack/build
Somehow I have an image in my registry that causes build some issues. I've copied the image to dockerhub as trisberg/hello:bad
.
If I try to build a function using the same image:tag then I get en error when the function starts since the invoker layer is missing.
Aruba:~ trisberg$ riff function create hello --git-repo https://github.com/projectriff-samples/hello.js --artifact hello.js --image trisberg/hello:bad --verbose
Waiting for LatestCreatedRevisionName
LatestCreatedRevisionName available: hello-00001
Waiting on function creation: function creation incomplete: service status unknown: RevisionMissing: Configuration "hello" is waiting for a Revision to become ready.
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 Trying group of 5...
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 ======== Output: NPM Buildpack ========
default/hello-00001-pod-507033[build-step-detect]: no "package.json" found at: /workspace/package.json
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 ======== Results ========
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 Cloud Foundry OpenJDK Buildpack: pass
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 Node.js Buildpack: pass
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 Cloud Foundry Build System Buildpack: skip
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 NPM Buildpack: skip
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 riff Buildpack: pass
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 Trying group of 5...
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 ======== Output: NPM Buildpack ========
default/hello-00001-pod-507033[build-step-detect]: no "package.json" found at: /workspace/package.json
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 ======== Results ========
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 Cloud Foundry OpenJDK Buildpack: pass
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 Node.js Buildpack: pass
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 Cloud Foundry Build System Buildpack: skip
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 NPM Buildpack: skip
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 riff Buildpack: pass
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 Trying group of 5...
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 ======== Output: NPM Buildpack ========
default/hello-00001-pod-507033[build-step-detect]: no "package.json" found at: /workspace/package.json
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 ======== Results ========
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 Cloud Foundry OpenJDK Buildpack: pass
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 Node.js Buildpack: pass
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 Cloud Foundry Build System Buildpack: skip
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 NPM Buildpack: skip
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 riff Buildpack: pass
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 Trying group of 5...
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 ======== Output: NPM Buildpack ========
default/hello-00001-pod-507033[build-step-detect]: no "package.json" found at: /workspace/package.json
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 ======== Results ========
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 Cloud Foundry OpenJDK Buildpack: pass
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 Node.js Buildpack: pass
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 Cloud Foundry Build System Buildpack: skip
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 NPM Buildpack: skip
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 riff Buildpack: pass
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 Trying group of 5...
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 ======== Output: NPM Buildpack ========
default/hello-00001-pod-507033[build-step-detect]: no "package.json" found at: /workspace/package.json
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 ======== Results ========
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 Cloud Foundry OpenJDK Buildpack: pass
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 Node.js Buildpack: pass
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 Cloud Foundry Build System Buildpack: skip
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 NPM Buildpack: skip
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 riff Buildpack: pass
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 Trying group of 5...
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 ======== Output: NPM Buildpack ========
default/hello-00001-pod-507033[build-step-detect]: no "package.json" found at: /workspace/package.json
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 ======== Results ========
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 Cloud Foundry OpenJDK Buildpack: pass
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 Node.js Buildpack: pass
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 Cloud Foundry Build System Buildpack: skip
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 NPM Buildpack: skip
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 riff Buildpack: pass
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 Trying group of 5...
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 ======== Output: NPM Buildpack ========
default/hello-00001-pod-507033[build-step-detect]: no "package.json" found at: /workspace/package.json
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 ======== Results ========
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 Cloud Foundry OpenJDK Buildpack: pass
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 Node.js Buildpack: pass
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 Cloud Foundry Build System Buildpack: skip
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 NPM Buildpack: skip
default/hello-00001-pod-507033[build-step-detect]: 2019/02/18 19:33:36 riff Buildpack: pass
default/hello-00001-pod-507033[build-step-analyze]: 2019/02/18 19:33:39 writing metadata for uncached layer 'io.projectriff.riff/function'
default/hello-00001-pod-507033[build-step-analyze]: 2019/02/18 19:33:39 writing metadata for uncached layer 'io.projectriff.riff/riff-invoker-node'
default/hello-00001-pod-507033[build-step-build]: -----> Cloud Foundry OpenJDK Buildpack 1.0.0-M5
default/hello-00001-pod-507033[build-step-build]:
default/hello-00001-pod-507033[build-step-build]: -----> Node.js Buildpack 0.0.2
default/hello-00001-pod-507033[build-step-build]: -----> NodeJS 11.4.0: Contributing to layer
default/hello-00001-pod-507033[build-step-build]: Downloading from https://nodejs.org/dist/v11.4.0/node-v11.4.0-linux-x64.tar.gz
default/hello-00001-pod-507033[build-step-build]: Verifying checksum
default/hello-00001-pod-507033[build-step-build]: Expanding to /layers/org.cloudfoundry.buildpacks.nodejs/node
default/hello-00001-pod-507033[build-step-build]: Writing NODE_HOME to shared
default/hello-00001-pod-507033[build-step-build]: Writing NODE_ENV to shared
default/hello-00001-pod-507033[build-step-build]: Writing NODE_MODULES_CACHE to shared
default/hello-00001-pod-507033[build-step-build]: Writing NODE_VERBOSE to shared
default/hello-00001-pod-507033[build-step-build]: Writing NPM_CONFIG_PRODUCTION to shared
default/hello-00001-pod-507033[build-step-build]: Writing NPM_CONFIG_LOGLEVEL to shared
default/hello-00001-pod-507033[build-step-build]: Writing WEB_MEMORY to shared
default/hello-00001-pod-507033[build-step-build]: Writing WEB_CONCURRENCY to shared
default/hello-00001-pod-507033[build-step-build]: -----> riff Buildpack 0.2.0-BUILD-SNAPSHOT
default/hello-00001-pod-507033[build-step-build]: -----> riff Node Invoker 0.1.0: Reusing cached layer
default/hello-00001-pod-507033[build-step-build]: -----> NodeJS hello.js: Reusing cached layer
default/hello-00001-pod-507033[build-step-build]: -----> Process types:
default/hello-00001-pod-507033[build-step-build]: web: node /layers/io.projectriff.riff/riff-invoker-node/server.js
default/hello-00001-pod-507033[build-step-build]: function: node /layers/io.projectriff.riff/riff-invoker-node/server.js
default/hello-00001-pod-507033[build-step-build]:
default/hello-00001-pod-507033[build-step-export]: 2019/02/18 19:33:45 caching unexported layer 'org.cloudfoundry.buildpacks.nodejs/4ef7dea131453da3a93cc1f32bff948da8953958dcbe3b413debae8bb41aa7a0'
default/hello-00001-pod-507033[build-step-export]: 2019/02/18 19:33:45 caching launch layer 'org.cloudfoundry.buildpacks.nodejs/node' with sha 'sha256:591279fb5d9e451b134c112b86d459baf2f6143cc8628af6969073380cec93d6'
default/hello-00001-pod-507033[build-step-export]: 2019/02/18 19:33:45 removing uncached layer 'io.projectriff.riff/function'
default/hello-00001-pod-507033[build-step-export]: 2019/02/18 19:33:45 removing uncached layer 'io.projectriff.riff/riff-invoker-node'
default/hello-00001-pod-507033[build-step-export]: 2019/02/18 19:33:46 adding layer 'app' with diffID 'sha256:efac5e63c5d934a97469a48396a87e93ea3ccc1c9ec9a6e916347e5f28b99bd8'
default/hello-00001-pod-507033[build-step-export]: 2019/02/18 19:33:46 adding layer 'config' with diffID 'sha256:788d039dca2f3950b3dbb1806d80588af4ca3a0cda5f1d2f8eed700fe3c87957'
default/hello-00001-pod-507033[build-step-export]: 2019/02/18 19:33:46 reusing layer 'launcher' with diffID 'sha256:2ad3c2c97afc88259b030858502967f39de147e748dc42b859b50091262d8049'
default/hello-00001-pod-507033[build-step-export]: 2019/02/18 19:33:46 reusing layer 'org.cloudfoundry.buildpacks.nodejs/node' with diffID 'sha256:591279fb5d9e451b134c112b86d459baf2f6143cc8628af6969073380cec93d6'
default/hello-00001-pod-507033[build-step-export]: 2019/02/18 19:33:46 reusing layer 'io.projectriff.riff/function' with diffID 'sha256:40bb43c93848c7cd6d9491c81f374303c0c5947024ad308848df0a3077222556'
default/hello-00001-pod-507033[build-step-export]: 2019/02/18 19:33:46 reusing layer 'io.projectriff.riff/riff-invoker-node' with diffID 'sha256:7e6b44a5be0d79fbd3f3e934f416adfe52a12f2ef3aa66f20ba10239be4ef6b1'
default/hello-00001-pod-507033[build-step-export]: 2019/02/18 19:33:46 setting metadata label 'io.buildpacks.lifecycle.metadata'
default/hello-00001-pod-507033[build-step-export]: 2019/02/18 19:33:46 setting env var 'PACK_LAYERS_DIR=/layers'
default/hello-00001-pod-507033[build-step-export]: 2019/02/18 19:33:46 setting env var 'PACK_APP_DIR=/workspace'
default/hello-00001-pod-507033[build-step-export]: 2019/02/18 19:33:46 setting entrypoint '/lifecycle/launcher'
default/hello-00001-pod-507033[build-step-export]: 2019/02/18 19:33:46 setting empty cmd
default/hello-00001-pod-507033[build-step-export]: 2019/02/18 19:33:46 writing image
default/hello-00001-pod-507033[build-step-export]: 2019/02/18 19:33:46 existing blob: sha256:01e734c850498f929b8fb427f845545d3ebf3165afdb77c85a9f7dcbda1adc60
default/hello-00001-pod-507033[build-step-export]: 2019/02/18 19:33:46 existing blob: sha256:7308e914506c09fa6d2242368545f55462e024f785e21b21b3e90403081a9336
default/hello-00001-pod-507033[build-step-export]: 2019/02/18 19:33:46 existing blob: sha256:7ade611080482d0fcaa6840b4df8352d01b8a3018b30f762a536140cd8dffcee
default/hello-00001-pod-507033[build-step-export]: 2019/02/18 19:33:47 existing blob: sha256:b964be986659b0d5eaae45bbb22fc179096ef8f8f49d9dfc2d8f6c2a8920c6f6
default/hello-00001-pod-507033[build-step-export]: 2019/02/18 19:33:47 existing blob: sha256:2da8bfb3b5b741820e6cb29a71f66e8d944ddad2d00c6dc1e31461120ed39e46
default/hello-00001-pod-507033[build-step-export]: 2019/02/18 19:33:47 existing blob: sha256:7f6e268c4bf3c282c066a17015e6c89268476592bb092a4577b6768790250dc3
default/hello-00001-pod-507033[build-step-export]: 2019/02/18 19:33:47 existing blob: sha256:705054bc3f5bd722eb8f026532447fac897c521d8906eb36e79a60d0fb0606fa
default/hello-00001-pod-507033[build-step-export]: 2019/02/18 19:33:47 existing blob: sha256:80e339c0631fb56471f967a9838454f62212fcf097b3424152b3a2cd266f52aa
default/hello-00001-pod-507033[build-step-export]: 2019/02/18 19:33:47 existing blob: sha256:99bad2b50436a694eaa4c3c0fb337e6a1f96e19783a0dec18513247ec03db603
default/hello-00001-pod-507033[build-step-export]: 2019/02/18 19:33:47 existing blob: sha256:38e2e6cd5626f31cea1a0a5751a9a7e6564c589a3388dcf84f00d4bb98146844
default/hello-00001-pod-507033[build-step-export]: 2019/02/18 19:33:47 existing blob: sha256:2501aaff82c2d492dc3f4fd4f526fd3c2e7fd090297559566733f170d92d692f
default/hello-00001-pod-507033[build-step-export]: 2019/02/18 19:33:47 existing blob: sha256:4c51b7d9e9ea44f5e1a432b04fd1d3a2accbcc8e8c2ba7455155a6661c868fb8
default/hello-00001-pod-507033[build-step-export]: 2019/02/18 19:33:47 existing blob: sha256:d3d2d352c91dfa8784df6da49f645c24b89c98b1ceee3d8dc0dc183073d94932
default/hello-00001-pod-507033[build-step-export]: 2019/02/18 19:33:47 existing blob: sha256:c7051e0695642c5bf01467a4a64106cabfa20e57fee91b31ee73f7308bccf5bd
default/hello-00001-pod-507033[build-step-export]: 2019/02/18 19:33:47 existing blob: sha256:09b3ec4f3bede08b94d415ed2318e8766fb189bf31e69c9ed5d5db5055982f07
default/hello-00001-pod-507033[build-step-export]: 2019/02/18 19:33:47 pushed blob sha256:70b4a718f3bfc891e5bcbb6c34a4ed6deb6e1df94aad0a2c293b6091ba69f2f3
default/hello-00001-pod-507033[build-step-export]: 2019/02/18 19:33:47 pushed blob sha256:911a4ae6fad92781a6fad3bb5f7557bbd993ef4c6145261745ae314644f0d4f6
default/hello-00001-pod-507033[build-step-export]: 2019/02/18 19:33:48
default/hello-00001-pod-507033[build-step-export]: 2019/02/18 19:33:48 index.docker.io/trisberg/hello:bad: digest: sha256:cfdce5b873fd8eb338b041b075e7baaeee49a07a1601282339200fb64753f29f size: 2856
default/hello-00001-pod-507033[build-step-export]: *** Image: trisberg/hello:bad@sha256:cfdce5b873fd8eb338b041b075e7baaeee49a07a1601282339200fb64753f29f
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: internal/modules/cjs/loader.js:605
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: throw err;
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: ^
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]:
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: Error: Cannot find module '/layers/io.projectriff.riff/riff-invoker-node/server.js'
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at Function.Module._resolveFilename (internal/modules/cjs/loader.js:603:15)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at Function.Module._load (internal/modules/cjs/loader.js:529:25)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at Function.Module.runMain (internal/modules/cjs/loader.js:776:12)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at executeUserCode (internal/bootstrap/node.js:342:17)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at startExecution (internal/bootstrap/node.js:276:5)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at startup (internal/bootstrap/node.js:227:5)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at bootstrapNodeJSCore (internal/bootstrap/node.js:743:3)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: internal/modules/cjs/loader.js:605
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: throw err;
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: ^
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]:
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: Error: Cannot find module '/layers/io.projectriff.riff/riff-invoker-node/server.js'
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at Function.Module._resolveFilename (internal/modules/cjs/loader.js:603:15)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at Function.Module._load (internal/modules/cjs/loader.js:529:25)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at Function.Module.runMain (internal/modules/cjs/loader.js:776:12)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at executeUserCode (internal/bootstrap/node.js:342:17)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at startExecution (internal/bootstrap/node.js:276:5)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at startup (internal/bootstrap/node.js:227:5)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at bootstrapNodeJSCore (internal/bootstrap/node.js:743:3)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: internal/modules/cjs/loader.js:605
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: throw err;
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: ^
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]:
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: Error: Cannot find module '/layers/io.projectriff.riff/riff-invoker-node/server.js'
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at Function.Module._resolveFilename (internal/modules/cjs/loader.js:603:15)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at Function.Module._load (internal/modules/cjs/loader.js:529:25)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at Function.Module.runMain (internal/modules/cjs/loader.js:776:12)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at executeUserCode (internal/bootstrap/node.js:342:17)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at startExecution (internal/bootstrap/node.js:276:5)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at startup (internal/bootstrap/node.js:227:5)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at bootstrapNodeJSCore (internal/bootstrap/node.js:743:3)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: internal/modules/cjs/loader.js:605
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: throw err;
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: ^
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]:
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: Error: Cannot find module '/layers/io.projectriff.riff/riff-invoker-node/server.js'
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at Function.Module._resolveFilename (internal/modules/cjs/loader.js:603:15)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at Function.Module._load (internal/modules/cjs/loader.js:529:25)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at Function.Module.runMain (internal/modules/cjs/loader.js:776:12)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at executeUserCode (internal/bootstrap/node.js:342:17)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at startExecution (internal/bootstrap/node.js:276:5)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at startup (internal/bootstrap/node.js:227:5)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at bootstrapNodeJSCore (internal/bootstrap/node.js:743:3)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: internal/modules/cjs/loader.js:605
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: throw err;
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: ^
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]:
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: Error: Cannot find module '/layers/io.projectriff.riff/riff-invoker-node/server.js'
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at Function.Module._resolveFilename (internal/modules/cjs/loader.js:603:15)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at Function.Module._load (internal/modules/cjs/loader.js:529:25)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at Function.Module.runMain (internal/modules/cjs/loader.js:776:12)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at executeUserCode (internal/bootstrap/node.js:342:17)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at startExecution (internal/bootstrap/node.js:276:5)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at startup (internal/bootstrap/node.js:227:5)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at bootstrapNodeJSCore (internal/bootstrap/node.js:743:3)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: internal/modules/cjs/loader.js:605
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: throw err;
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: ^
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]:
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: Error: Cannot find module '/layers/io.projectriff.riff/riff-invoker-node/server.js'
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at Function.Module._resolveFilename (internal/modules/cjs/loader.js:603:15)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at Function.Module._load (internal/modules/cjs/loader.js:529:25)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at Function.Module.runMain (internal/modules/cjs/loader.js:776:12)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at executeUserCode (internal/bootstrap/node.js:342:17)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at startExecution (internal/bootstrap/node.js:276:5)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at startup (internal/bootstrap/node.js:227:5)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at bootstrapNodeJSCore (internal/bootstrap/node.js:743:3)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: internal/modules/cjs/loader.js:605
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: throw err;
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: ^
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]:
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: Error: Cannot find module '/layers/io.projectriff.riff/riff-invoker-node/server.js'
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at Function.Module._resolveFilename (internal/modules/cjs/loader.js:603:15)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at Function.Module._load (internal/modules/cjs/loader.js:529:25)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at Function.Module.runMain (internal/modules/cjs/loader.js:776:12)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at executeUserCode (internal/bootstrap/node.js:342:17)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at startExecution (internal/bootstrap/node.js:276:5)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at startup (internal/bootstrap/node.js:227:5)
default/hello-00001-deployment-648f5b84f7-9srw2[user-container]: at bootstrapNodeJSCore (internal/bootstrap/node.js:743:3)
Error: function creation failed: RevisionFailed: Revision "hello-00001" failed with message: "Container failed with: internal/modules/cjs/loader.js:605\n throw err;\n ^\n\nError: Cannot find module '/layers/io.projectriff.riff/riff-invoker-node/server.js'\n at Function.Module._resolveFilename (internal/modules/cjs/loader.js:603:15)\n at Function.Module._load (internal/modules/cjs/loader.js:529:25)\n at Function.Module.runMain (internal/modules/cjs/loader.js:776:12)\n at executeUserCode (internal/bootstrap/node.js:342:17)\n at startExecution (internal/bootstrap/node.js:276:5)\n at startup (internal/bootstrap/node.js:227:5)\n at bootstrapNodeJSCore (internal/bootstrap/node.js:743:3)\n".
Looking at the image the invoker layer seems to be missing:
pack@608d54079f34:/workspace$ ls -R /layers/io.projectriff.riff/
/layers/io.projectriff.riff/:
function
/layers/io.projectriff.riff/function:
env.launch
/layers/io.projectriff.riff/function/env.launch:
FUNCTION_URI.override
I'm not sure what is going on here or how this original image was created but it seems that we need to check these layers.
I see this:
default/hello-00001-pod-507033[build-step-export]: 2019/02/18 19:33:46 reusing layer 'io.projectriff.riff/riff-invoker-node' with diffID 'sha256:7e6b44a5be0d79fbd3f3e934f416adfe52a12f2ef3aa66f20ba10239be4ef6b1'
but AFAICT this layer does not contain the invoker.
This will allow function builds to run concurrently, whereas each build is currently blocked if the volume is attached to another function build's pod.
The default should be an emptyDir
, but riff would be able to provide a PersistentVolumeClaim per function, which means the PersistentVolumeClaim defined in riff-cnb-buildtemplate.yaml
should be removed.
This might be an issue that needs to be solved in the buildpacks or lifecycle projects but I'm adding it here as a start.
I have Harbor running and can push and pull images from it using docker CLI.
If I run this:
riff function create hello --git-repo https://github.com/projectriff-samples/hello.js --artifact hello.js \
--image harbor.springdeveloper.com/pub/hello --verbose
I get the image pushed and function starts running.
$ riff function create hello --git-repo https://github.com/projectriff-samples/hello.js --artifact hello.js --image harbor.springdeveloper.com/pub/hello --verbose
Waiting for LatestCreatedRevisionName
Waiting on function creation: function creation incomplete: service status unknown: RevisionMissing: Configuration "hello" is waiting for a Revision to become ready.
LatestCreatedRevisionName available: hello-00001
default/hello-00001-pod-9b721e[build-step-detect]: 2019/02/18 15:52:28 Trying group of 5...
default/hello-00001-pod-9b721e[build-step-detect]: 2019/02/18 15:52:28 ======== Output: NPM Buildpack ========
default/hello-00001-pod-9b721e[build-step-detect]: no "package.json" found at: /workspace/package.json
default/hello-00001-pod-9b721e[build-step-detect]: 2019/02/18 15:52:28 ======== Results ========
default/hello-00001-pod-9b721e[build-step-detect]: 2019/02/18 15:52:28 Cloud Foundry OpenJDK Buildpack: pass
default/hello-00001-pod-9b721e[build-step-detect]: 2019/02/18 15:52:28 Node.js Buildpack: pass
default/hello-00001-pod-9b721e[build-step-detect]: 2019/02/18 15:52:28 Cloud Foundry Build System Buildpack: skip
default/hello-00001-pod-9b721e[build-step-detect]: 2019/02/18 15:52:28 NPM Buildpack: skip
default/hello-00001-pod-9b721e[build-step-detect]: 2019/02/18 15:52:28 riff Buildpack: pass
default/hello-00001-pod-9b721e[build-step-analyze]: 2019/02/18 15:52:31 WARNING: image 'harbor.springdeveloper.com/pub/hello' not found or requires authentication to access
default/hello-00001-pod-9b721e[build-step-build]: -----> Cloud Foundry OpenJDK Buildpack 1.0.0-M5
default/hello-00001-pod-9b721e[build-step-build]:
default/hello-00001-pod-9b721e[build-step-build]: -----> Node.js Buildpack 0.0.2
default/hello-00001-pod-9b721e[build-step-build]: -----> NodeJS 11.4.0: Contributing to layer
default/hello-00001-pod-9b721e[build-step-build]: Downloading from https://nodejs.org/dist/v11.4.0/node-v11.4.0-linux-x64.tar.gz
default/hello-00001-pod-9b721e[build-step-build]: Verifying checksum
default/hello-00001-pod-9b721e[build-step-build]: Expanding to /layers/org.cloudfoundry.buildpacks.nodejs/node
default/hello-00001-pod-9b721e[build-step-build]: Writing NODE_HOME to shared
default/hello-00001-pod-9b721e[build-step-build]: Writing NODE_ENV to shared
default/hello-00001-pod-9b721e[build-step-build]: Writing NODE_MODULES_CACHE to shared
default/hello-00001-pod-9b721e[build-step-build]: Writing NODE_VERBOSE to shared
default/hello-00001-pod-9b721e[build-step-build]: Writing NPM_CONFIG_PRODUCTION to shared
default/hello-00001-pod-9b721e[build-step-build]: Writing NPM_CONFIG_LOGLEVEL to shared
default/hello-00001-pod-9b721e[build-step-build]: Writing WEB_MEMORY to shared
default/hello-00001-pod-9b721e[build-step-build]: Writing WEB_CONCURRENCY to shared
default/hello-00001-pod-9b721e[build-step-build]: -----> riff Buildpack 0.2.0-BUILD-SNAPSHOT
default/hello-00001-pod-9b721e[build-step-build]: -----> riff Node Invoker 0.1.0: Contributing to layer
default/hello-00001-pod-9b721e[build-step-build]: Reusing cached download from buildpack
default/hello-00001-pod-9b721e[build-step-build]: Expanding to /layers/io.projectriff.riff/riff-invoker-node
default/hello-00001-pod-9b721e[build-step-build]: npm-installing the node invoker
default/hello-00001-pod-9b721e[build-step-build]: added 76 packages from 60 contributors and audited 524 packages in 2.395s
default/hello-00001-pod-9b721e[build-step-build]: found 3 moderate severity vulnerabilities
default/hello-00001-pod-9b721e[build-step-build]: run `npm audit fix` to fix them, or `npm audit` for details
default/hello-00001-pod-9b721e[build-step-build]: Writing HOST to launch
default/hello-00001-pod-9b721e[build-step-build]: Writing HTTP_PORT to launch
default/hello-00001-pod-9b721e[build-step-build]: -----> NodeJS hello.js: Contributing to layer
default/hello-00001-pod-9b721e[build-step-build]: Writing FUNCTION_URI to launch
default/hello-00001-pod-9b721e[build-step-build]: -----> Process types:
default/hello-00001-pod-9b721e[build-step-build]: web: node /layers/io.projectriff.riff/riff-invoker-node/server.js
default/hello-00001-pod-9b721e[build-step-build]: function: node /layers/io.projectriff.riff/riff-invoker-node/server.js
default/hello-00001-pod-9b721e[build-step-build]:
default/hello-00001-pod-9b721e[build-step-export]: 2019/02/18 15:52:40 caching unexported layer 'org.cloudfoundry.buildpacks.nodejs/4ef7dea131453da3a93cc1f32bff948da8953958dcbe3b413debae8bb41aa7a0'
default/hello-00001-pod-9b721e[build-step-export]: 2019/02/18 15:52:40 caching launch layer 'org.cloudfoundry.buildpacks.nodejs/node' with sha 'sha256:591279fb5d9e451b134c112b86d459baf2f6143cc8628af6969073380cec93d6'
default/hello-00001-pod-9b721e[build-step-export]: 2019/02/18 15:52:40 removing uncached layer 'io.projectriff.riff/function'
default/hello-00001-pod-9b721e[build-step-export]: 2019/02/18 15:52:40 removing uncached layer 'io.projectriff.riff/riff-invoker-node'
default/hello-00001-pod-9b721e[build-step-export]: 2019/02/18 15:52:41 adding layer 'app' with diffID 'sha256:c4857bb76413f87a896a045a0f11fe9b4f4adadf697e36f01914ce18a22c8321'
default/hello-00001-pod-9b721e[build-step-export]: 2019/02/18 15:52:41 adding layer 'config' with diffID 'sha256:788d039dca2f3950b3dbb1806d80588af4ca3a0cda5f1d2f8eed700fe3c87957'
default/hello-00001-pod-9b721e[build-step-export]: 2019/02/18 15:52:41 adding layer 'launcher' with diffID 'sha256:2ad3c2c97afc88259b030858502967f39de147e748dc42b859b50091262d8049'
default/hello-00001-pod-9b721e[build-step-export]: 2019/02/18 15:52:41 adding layer 'org.cloudfoundry.buildpacks.nodejs/node' with diffID 'sha256:591279fb5d9e451b134c112b86d459baf2f6143cc8628af6969073380cec93d6'
default/hello-00001-pod-9b721e[build-step-export]: 2019/02/18 15:52:43 adding layer 'io.projectriff.riff/function' with diffID 'sha256:40bb43c93848c7cd6d9491c81f374303c0c5947024ad308848df0a3077222556'
default/hello-00001-pod-9b721e[build-step-export]: 2019/02/18 15:52:43 adding layer 'io.projectriff.riff/riff-invoker-node' with diffID 'sha256:b4c044cef9ee2478246213c027b1612b03307430c1d8d4798e340bf984856c7c'
default/hello-00001-pod-9b721e[build-step-export]: 2019/02/18 15:52:43 setting metadata label 'io.buildpacks.lifecycle.metadata'
default/hello-00001-pod-9b721e[build-step-export]: 2019/02/18 15:52:43 setting env var 'PACK_LAYERS_DIR=/layers'
default/hello-00001-pod-9b721e[build-step-export]: 2019/02/18 15:52:43 setting env var 'PACK_APP_DIR=/workspace'
default/hello-00001-pod-9b721e[build-step-export]: 2019/02/18 15:52:43 setting entrypoint '/lifecycle/launcher'
default/hello-00001-pod-9b721e[build-step-export]: 2019/02/18 15:52:43 setting empty cmd
default/hello-00001-pod-9b721e[build-step-export]: 2019/02/18 15:52:43 writing image
default/hello-00001-pod-9b721e[build-step-export]: 2019/02/18 15:52:44 pushed blob sha256:7ade611080482d0fcaa6840b4df8352d01b8a3018b30f762a536140cd8dffcee
default/hello-00001-pod-9b721e[build-step-export]: 2019/02/18 15:52:44 pushed blob sha256:09b3ec4f3bede08b94d415ed2318e8766fb189bf31e69c9ed5d5db5055982f07
default/hello-00001-pod-9b721e[build-step-export]: 2019/02/18 15:52:44 pushed blob sha256:7f6e268c4bf3c282c066a17015e6c89268476592bb092a4577b6768790250dc3
default/hello-00001-pod-9b721e[build-step-export]: 2019/02/18 15:52:44 pushed blob sha256:46836b201a93dde5e8f1856785764d32460276e0e2ffba8e7f0dbb34c8ed3767
default/hello-00001-pod-9b721e[build-step-export]: 2019/02/18 15:52:44 pushed blob sha256:705054bc3f5bd722eb8f026532447fac897c521d8906eb36e79a60d0fb0606fa
default/hello-00001-pod-9b721e[build-step-export]: 2019/02/18 15:52:44 pushed blob sha256:7a427cee704cfd8d536e53bdf8107309cdebe534201963bb6578d7e028e58e79
default/hello-00001-pod-9b721e[build-step-export]: 2019/02/18 15:52:44 pushed blob sha256:2501aaff82c2d492dc3f4fd4f526fd3c2e7fd090297559566733f170d92d692f
default/hello-00001-pod-9b721e[build-step-export]: 2019/02/18 15:52:44 pushed blob sha256:7308e914506c09fa6d2242368545f55462e024f785e21b21b3e90403081a9336
default/hello-00001-pod-9b721e[build-step-export]: 2019/02/18 15:52:44 pushed blob sha256:c7051e0695642c5bf01467a4a64106cabfa20e57fee91b31ee73f7308bccf5bd
default/hello-00001-pod-9b721e[build-step-export]: 2019/02/18 15:52:44 pushed blob sha256:4c51b7d9e9ea44f5e1a432b04fd1d3a2accbcc8e8c2ba7455155a6661c868fb8
default/hello-00001-pod-9b721e[build-step-export]: 2019/02/18 15:52:44 pushed blob sha256:eaab5fcd334de9b86a1844771d4f333e055da33c9eb603b6c53329ee9e10b83a
default/hello-00001-pod-9b721e[build-step-export]: 2019/02/18 15:52:45 pushed blob sha256:2da8bfb3b5b741820e6cb29a71f66e8d944ddad2d00c6dc1e31461120ed39e46
default/hello-00001-pod-9b721e[build-step-export]: 2019/02/18 15:52:45 pushed blob sha256:01e734c850498f929b8fb427f845545d3ebf3165afdb77c85a9f7dcbda1adc60
default/hello-00001-pod-9b721e[build-step-export]: 2019/02/18 15:52:46 pushed blob sha256:b964be986659b0d5eaae45bbb22fc179096ef8f8f49d9dfc2d8f6c2a8920c6f6
default/hello-00001-pod-9b721e[build-step-export]: 2019/02/18 15:52:50 pushed blob sha256:80e339c0631fb56471f967a9838454f62212fcf097b3424152b3a2cd266f52aa
default/hello-00001-pod-9b721e[build-step-export]: 2019/02/18 15:52:54 pushed blob sha256:d3d2d352c91dfa8784df6da49f645c24b89c98b1ceee3d8dc0dc183073d94932
default/hello-00001-pod-9b721e[build-step-export]: 2019/02/18 15:52:55 pushed blob sha256:38e2e6cd5626f31cea1a0a5751a9a7e6564c589a3388dcf84f00d4bb98146844
default/hello-00001-pod-9b721e[build-step-export]: 2019/02/18 15:52:55 harbor.springdeveloper.com/pub/hello:latest: digest: sha256:7ae9a94324d2389a98b03d39e7e9f8bcea03a3b453e2315c7c5dce64401a3093 size: 2856
default/hello-00001-pod-9b721e[build-step-export]: 2019/02/18 15:52:55
default/hello-00001-pod-9b721e[build-step-export]: *** Image: harbor.springdeveloper.com/pub/hello@sha256:7ae9a94324d2389a98b03d39e7e9f8bcea03a3b453e2315c7c5dce64401a3093
default/hello-00001-deployment-77946755fd-4m4pj[user-container]: Node started in 120ms
default/hello-00001-deployment-77946755fd-4m4pj[user-container]: Server starting with request-reply interaction model and payload argument type
default/hello-00001-deployment-77946755fd-4m4pj[user-container]: HTTP loaded in 123ms
default/hello-00001-deployment-77946755fd-4m4pj[user-container]: HTTP running on localhost:8080
default/hello-00001-deployment-77946755fd-4m4pj[user-container]: Function invoker started in 251ms
riff function create completed successfully
However, I can't see the image using the Harbor API:
$ curl -X GET -L -u trisberg:$HARBOR_PWD -w '\n' --header 'Accept: application/json' 'http://harbor.springdeveloper.com/api/repositories?project_id=7'
[]
I can pull the image
$ docker pull harbor.springdeveloper.com/pub/hello
Using default tag: latest
latest: Pulling from pub/hello
38e2e6cd5626: Already exists
705054bc3f5b: Already exists
c7051e069564: Already exists
7308e914506c: Already exists
2da8bfb3b5b7: Already exists
4c51b7d9e9ea: Already exists
80e339c0631f: Already exists
01e734c85049: Already exists
09b3ec4f3bed: Already exists
2501aaff82c2: Already exists
7a427cee704c: Pull complete
7ade61108048: Pull complete
b964be986659: Pull complete
d3d2d352c91d: Pull complete
7f6e268c4bf3: Pull complete
eaab5fcd334d: Pull complete
Digest: sha256:7ae9a94324d2389a98b03d39e7e9f8bcea03a3b453e2315c7c5dce64401a3093
Status: Downloaded newer image for harbor.springdeveloper.com/pub/hello:latest
I can push the image
$ docker push harbor.springdeveloper.com/pub/hello
The push refers to repository [harbor.springdeveloper.com/pub/hello]
b4c044cef9ee: Layer already exists
40bb43c93848: Layer already exists
591279fb5d9e: Layer already exists
2ad3c2c97afc: Layer already exists
788d039dca2f: Layer already exists
c4857bb76413: Layer already exists
fa4d876615d8: Layer already exists
b68f13611ea3: Layer already exists
72a6570c4422: Layer already exists
3210aa063b89: Layer already exists
b2fedec7b904: Layer already exists
0e84b32bb1dd: Layer already exists
27a216ffe825: Layer already exists
9e9d3c3a7458: Layer already exists
7604c8714555: Layer already exists
adcb570ae9ac: Layer already exists
latest: digest: sha256:ffab0c86d36c0c53c1c2699378450b216bcfe944c9db71d3a60426bd0dbbf6b1 size: 3661
And now I can see the image using the Harbor API:
$ curl -X GET -L -u trisberg:$HARBOR_PWD -w '\n' --header 'Accept: application/json' 'http://harbor.springdeveloper.com/api/repositories?project_id=7'
[
{
"id": 48,
"name": "pub/hello",
"project_id": 7,
"description": "",
"pull_count": 0,
"star_count": 0,
"tags_count": 1,
"labels": [],
"creation_time": "2019-02-18T15:57:04.565661Z",
"update_time": "2019-02-18T15:57:04.565661Z"
}
]
We currently have a template for a templated file. This is currently so because the template is applied at different points in the lifecycle. While it works, we should try to find a more elegant solution.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.