instruction: Create a Dockerfile for fundamentals
output: ```dockerfile
  from BuildKit to JSON lines.
  This mode is designed to be read by an external program.Create provenance attestations (--provenance)Shorthand for --attest=type=provenance, used to configure
  provenance attestations for the build result. For example,
  --provenance=mode=max can be used as an abbreviation for
  --attest=type=provenance,mode=max.Additionally, --provenance can be used with Boolean values to enable or disable
  provenance attestations. For example, --provenance=false disables all provenance attestations,
  while --provenance=true enables all provenance attestations.By default, a minimal provenance attestation will be created for the build
  result. Note that the default image store in Docker Engine doesn't support
  attestations. Provenance attestations only persist for images pushed directly
  to a registry if you use the default image store. Alternatively, you can switch
  to using the containerd image store.For more information about provenance attestations, see
  here.Push the build result to a registry (--push)Shorthand for --output=type=registry. Will automatically push the
  build result to registry.Create SBOM attestations (--sbom)Shorthand for --attest=type=sbom, used to configure SBOM
  attestations for the build result. For example,
  --sbom=generator=<user>/<generator-image> can be used as an abbreviation for
  --attest=type=sbom,generator=<user>/<generator-image>.Additionally, --sbom can be used with Boolean values to enable or disable
  SBOM attestations. For example, --sbom=false disables all SBOM attestations.Note that the default image store in Docker Engine doesn't support
  attestations. Provenance attestations only persist for images pushed directly
  to a registry if you use the default image store. Alternatively, you can switch
  to using the containerd image store.For more information, see
  here.Secret to expose to the build (--secret)
  
  --secret=[type=TYPE[,KEY=VALUE]Exposes secrets (authentication credentials, tokens) to the build.
  A secret can be mounted into the build using a RUN --mount=type=secret mount in the
  Dockerfile.
  For more information about how to use build secrets, see
  Build secrets.Supported types are:type=filetype=envBuildx attempts to detect the type automatically if unset. If an environment
  variable with the same key as id is set, then Buildx uses type=env and the
  variable value becomes the secret. If no such environment variable is set, and
  type is not set, then Buildx falls back to type=file.type=fileSource a build secret
  ```