pipeline: Bug in example for build-pipeline: cp -r /workspace/output/builtImage/ fails

Expected Behavior

All steps for the tutorial complete OK

Actual Behavior

{"level":"info","ts":1547725576.5358577,"logger":"fallback-logger","caller":"bash/main.go:65","msg":"Successfully executed command \"mkdir -p /pvc/build-skaffold-web/builtImage\""}
{"level":"error","ts":1547725577.9350305,"logger":"fallback-logger","caller":"bash/main.go:62","msg":"Error executing command \"cp -r /workspace/output/builtImage/. /pvc/build-skaffold-web/builtImage\" with arguments cp: can't stat '/workspace/output/builtImage/.': No such file or directory\n","stacktrace":"main.main\n\t/Users/jessicamccreery/gopath/src/github.com/knative/build-pipeline/cmd/bash/main.go:62\nruntime.main\n\t/usr/local/Cellar/go/1.10.3/libexec/src/runtime/proc.go:198"}
2019/01/17 11:46:17 exit status 1

this is taken from my colleague @jessm12’s laptop, we’re both working on the tutorial together and are hitting this problem. This error is from the final container (build-step-source-copy-skaffold-image-leeroy-web):

\"cp -r /workspace/output/builtImage/. /pvc/build-skaffold-web/builtImage\" with arguments cp: can't stat '/workspace/output/builtImage/.': No such file or directory being the problem.

May need an additional task? If I look at what’s at my PV’s location on disk, this directory is indeed empty.

We think there’s a bug here whereby the image isn’t copied successfully, perhaps due to a missing task where we should make the directory?

Steps to Reproduce the Problem

  1. Install Docker for Desktop (edge version) and then enable Kubernetes (8 GB memory, 4 CPUs is good)
  2. Follow the simple pipeline example at https://github.com/knative/build-pipeline/tree/master/examples, changing it so that the built image is on your public Dockerhub account (this requires adding a Docker basic auth secret and patching the service account to use it). We changed resources.yaml removing the results entry and we would like to make the example even easier to run on one’s laptop
  3. Try to run the pipeline with a kubectl apply on the run/pipeline-run.yaml: observe the error when the demo pipeline run pod fails (the last init container should error).

Update: I’ve since added more notes here that may be of use for running this locally for ease of a reproduce.

Additional Info

My environment is Docker for Desktop on a Mac running the edge Docker driver.

I’m pushing the built image up to my public Docker registry (this works fine, I’ve configured it to use a secret and patched the service account).

Perhaps it’s to do with permissions and a Docker for Desktop specific problem? Under “File Sharing” I have /Users, /Volumes, /private, and /tmp as directories/subdirectories that can be bind mounded.

For some context and what’s been discussed already please see https://knative.slack.com/archives/CDCQ72D0R/p1547731362165400.

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Reactions: 2
  • Comments: 16 (12 by maintainers)

Commits related to this issue

Most upvoted comments

p.s. just a quick note: excellent write up @a-roberts, thanks for all the detail ❤️ !

uhm, collaborators is not the same as “Contributor” obviously

thanks @shashwathi - I thought only collaborators had the “assign” power but anyone could be assigned… I should have read the bot reply more carefully

@a-roberts Fair point. I prepared #414 nonetheless, because there’s not official release yet. If we can aim to implement #216 before the next release it should be fine.