Dependent buildpacks are not found when using "pack build"

290 views Asked by At

I am new to buildpacks and am trying to create buildpacks for Apache Spark.

So far, I have this:

spark-init/buildpack.toml:

api = "0.8"

[buildpack]
  id = "MYREGISTRY/buildpacks/spark-init"
  description = "A Cloud Native Buildpack which downloads and installs Apache Spark"
  version = "0.0.1"

[[stacks]]
  id = "io.buildpacks.stacks.bionic"

[[stacks]]
  id = "io.paketo.stacks.tiny"

[[stacks]]
  id = "*"

spark-init/package.toml:

[buildpack]
  uri = "."

spark/buildpack.toml:

api = "0.8"

[buildpack]
  id = "MYREGISTRY/buildpacks/spark"
  description = "A Cloud Native Buildpack which builds a Spark app"
  version = "0.0.1"

[[order]]
  [[order.group]]
    id = "MYREGISTRY/buildpacks/spark-init"
    version = "0.0.1"
  [[order.group]]
    id = "gcr.io/paketo-buildpacks/java"
    version = "9.5.0"

spark/package.toml:

[buildpack]
  uri = "."

[[dependencies]]
  uri = "../spark-init"

[[dependencies]]
  uri = "docker://MYREGISTRY/buildpacks/spark-init:0.0.1"

[[dependencies]]
  uri = "docker://gcr.io/paketo-buildpacks/java:9.5.0"

I already packaged the spark-init buildpack, I can run docker pull MYREGISTRY/buildpacks/spark-init:0.0.1.

When I now run

pack build test-spark-app --path /path/to/some/spark/app --buildpack spark

I get:

base: Pulling from paketo-buildpacks/builder
Digest: sha256:c1e38424191fb515597c542a0b2253ca29b670334afa6a2564e9df9f5a80bf60
Status: Image is up to date for gcr.io/paketo-buildpacks/builder:base
base-cnb: Pulling from paketo-buildpacks/run
Digest: sha256:f30b94d1acc0ccd74c416b4c83b59081f9f51a92a80e33793a43eb4f0afe4ceb
Status: Image is up to date for gcr.io/paketo-buildpacks/run:base-cnb
ERROR: failed to build: validating buildpacks: buildpack MYREGISTRY/buildpacks/[email protected] not found on the builder

What am I missing? Why are my buildpacks not found? I can explicitly state the spark-init buildpack at the command line but then it barks on not finding the Java one, besides, this would make this mechanism totally useless when you manually have to state all dependencies used.

0

There are 0 answers