Closed cristifalcas closed 11 months ago
To be able to use bazel targets to build images
skaffold build fails with
skaffold build
the bazel build target should end with .tar, see https://github.com/bazelbuild/rules_docker#using-with-docker-locally
skaffold/v4beta7
skaffold/v4beta4
apiVersion: skaffold/v4beta7 kind: Config build: artifacts: - image: test_img context: . bazel: target: "//:app" tagPolicy: inputDigest: {} local: concurrency: 0 tryImportMissing: true
BAZEL.build:
load("//tools/build_rules:container_image.bzl", "container_image") container_image( name = "app", base = "@distroless_base_python3_docker//image", )
Logs:
DEBU[0000] skaffold API not starting as it's not requested subtask=-1 task=DevLoop INFO[0000] Skaffold &{Version:v2.8.0 ConfigVersion:skaffold/v4beta7 GitVersion: GitCommit:ba02de8494a2cfe36249087871e9c7aa80fc535e BuildDate:2023-10-04T08:09:17Z GoVersion:go1.21.0 Compiler:gc Platform:darwin/amd64 User:} subtask=-1 task=DevLoop INFO[0000] Loaded Skaffold defaults from "/Users/cfalcas/.skaffold/config" subtask=-1 task=DevLoop DEBU[0000] parsed 1 configs from configuration file /Users/cfalcas/development/sciences/skaffold.yaml subtask=-1 task=DevLoop INFO[0000] map entry found when executing locate for &{spellcorrection . <nil> {<nil> 0xc000877e00 <nil> <nil> <nil> <nil> <nil>} [] {[] []} [] } of type *latest.Artifact and pointer: 824644069616 subtask=-1 task=DevLoop INFO[0000] Using kubectl context: gke_project_us-central1_cluster-name subtask=-1 task=DevLoop DEBU[0000] getting client config for kubeContext: `gke_project_us-central1_cluster-name` subtask=-1 task=DevLoop DEBU[0001] Running command: [minikube version --output=json] subtask=-1 task=DevLoop DEBU[0001] Command output: [{"commit":"fd7ecd9c4599bef9f04c0986c4a0187f98a4396e","minikubeVersion":"v1.31.2"} ] subtask=-1 task=DevLoop DEBU[0001] Running command: [/usr/local/bin/minikube profile list -o json --user=skaffold] subtask=-1 task=DevLoop DEBU[0001] Running command: [/usr/local/bin/minikube profile list -o json --user=skaffold] subtask=-1 task=DevLoop DEBU[0001] setting Docker user agent to skaffold-v2.8.0 subtask=-1 task=DevLoop INFO[0001] DOCKER_HOST env is not set, using the host from docker context. subtask=-1 task=DevLoop DEBU[0001] Running command: [docker context inspect --format {{.Endpoints.docker.Host}}] subtask=-1 task=DevLoop DEBU[0002] Command output: [unix:///Users/cfalcas/.docker/run/docker.sock ] subtask=-1 task=DevLoop INFO[0002] no kpt renderer or deployer found, skipping hydrated-dir creation subtask=-1 task=DevLoop DEBU[0002] Running command: [kubectl config view --minify -o jsonpath='{..namespace}'] subtask=-1 task=DevLoop DEBU[0002] Command output: [''] subtask=-1 task=DevLoop DEBU[0002] CLI platforms provided: "" subtask=-1 task=DevLoop DEBU[0002] platform detection from active kubernetes cluster is not enabled subtask=-1 task=DevLoop DEBU[0002] platforms selected for artifact "spellcorrection": "" subtask=-1 task=DevLoop DEBU[0002] Using builder: local subtask=-1 task=DevLoop DEBU[0002] push value not present in NewBuilder, defaulting to true because cluster.PushImages is true subtask=-1 task=DevLoop INFO[0002] build concurrency first set to 0 parsed from *runner.pipelineBuilderWithHooks[0] subtask=-1 task=DevLoop INFO[0002] final build concurrency value is 0 subtask=-1 task=DevLoop Generating tags... - spellcorrection -> DEBU[0002] Running command: [git describe --tags --always] subtask=-1 task=Build DEBU[0002] Command output: [a7aaad102a6 ] subtask=-1 task=Build DEBU[0002] Running command: [git status . --porcelain] subtask=-1 task=Build DEBU[0002] Command output: [ M BUILD.bazel M apps/spell_correction/kubernetes/BUILD.bazel M third_party/google-cloud-sdk/extract.sh D third_party/skaffold/BUILD.bazel M tools/build_rules/cloud_deploy/skaffold.bzl M tools/build_rules/cloud_deploy/skaffold_tpl.env M tools/build_rules/cloud_deploy/skaffold_tpl.yaml M tools/build_rules/third_party_binaries.bzl ?? .aspect/ ?? .scala-build/ ?? .vscode/ ?? __idei.txt ?? _buildkite-key ?? _download_assets.sh ?? _pagerduty.py ?? _prom_search.py ?? apps/sre_tools/_demo/ ?? apps/sre_tools/_ebpf_tools/ ?? apps/sre_tools/github_bot/pnpm-lock.lock ?? apps/sre_tools/prometheus/ ?? build_profile.json.gz ?? q/ ?? skaffold.env ?? skaffold.yaml ?? third_party/_skaffold/ ] subtask=-1 task=Build us-central1-docker.pkg.dev/project/cluster-name/spellcorrection:a7aaad102a6-dirty INFO[0002] Tags generated in 527.132932ms subtask=-1 task=Build Checking cache... DEBU[0002] Running command: [bazel query kind('source file', deps('//:app')) union buildfiles(deps('//:app')) --noimplicit_deps --order_output=no --output=label] subtask=-1 task=Build DEBU[0003] Command output: [@distroless_base_python3_docker//image:003.tar.gz @distroless_base_python3_docker//image:000.tar.gz @distroless_base_python3_docker//image:001.tar.gz @distroless_base_python3_docker//image:002.tar.gz @distroless_base_python3_docker//image:config.json @io_bazel_rules_scala//scala/private:BUILD @bazel_tools//tools/build_defs/repo:http.bzl @io_bazel_rules_scala//scala/private:common.bzl @io_bazel_rules_docker//container:layer.bzl @io_bazel_rules_scala//scala/private:rules/scala_library.bzl @io_bazel_rules_scala//scala:providers.bzl @local_config_platform//:constraints.bzl @io_bazel_rules_scala//scala/private:phases/phase_runfiles.bzl @io_bazel_rules_scala_config//:BUILD @distroless_base_python3_docker//image:BUILD @io_bazel_rules_docker//container:layer_tools.bzl @io_bazel_rules_scala//scala/private:rules/scala_test.bzl @io_bazel_rules_scala//testing:testing.bzl @io_bazel_rules_scala//scala/private:phases/phase_write_executable.bzl @io_bazel_rules_docker//skylib:filetype.bzl @exec_properties//:constants.bzl @io_bazel_rules_docker//skylib:BUILD @io_bazel_rules_scala//scala:scala_cross_version.bzl @io_bazel_rules_scala//testing:BUILD @io_bazel_rules_scala//scala/private:phases/phase_scalacopts.bzl @io_bazel_rules_scala//scala/private:rules/scala_repl.bzl @io_bazel_rules_scala//scala:BUILD @io_bazel_rules_scala//scala/private/toolchain_deps:toolchain_deps.bzl @io_bazel_rules_scala//scala/private:rules/scala_doc.bzl @io_bazel_rules_scala//junit:junit.bzl //:BUILD.bazel @io_bazel_rules_docker//container:import.bzl @io_bazel_rules_scala//testing/toolchain:toolchain.bzl @io_bazel_rules_scala//scala/private:phases/phase_merge_jars.bzl @io_bazel_rules_scala//scala:scala.bzl @io_bazel_rules_scala//scala/private:common_attributes.bzl @io_bazel_rules_scala//scala/private:phases/phase_coverage.bzl @bazel_skylib//lib:paths.bzl @io_bazel_rules_scala//specs2:specs2_junit.bzl @io_bazel_rules_scala//scala/private:phases/phase_collect_srcjars.bzl @io_bazel_rules_scala//scala/private:rule_impls.bzl @io_bazel_rules_scala//junit:BUILD @io_bazel_rules_scala//scala/private:phases/phases.bzl //tools/build_rules:BUILD.bazel @io_bazel_rules_scala//scala/private:phases/phase_scalac_provider.bzl @io_bazel_rules_scala//specs2:specs2.bzl @io_bazel_rules_scala//third_party/repositories:repositories.bzl @bazel_tools//tools/build_defs/repo:BUILD @io_bazel_rules_scala//third_party/repositories:scala_3_1.bzl @io_bazel_rules_scala//scala/private:coverage_replacements_provider.bzl @io_bazel_rules_scala//scala/private:rules/scala_junit_test.bzl @io_bazel_rules_scala//scala/private:phases/phase_collect_jars.bzl @io_bazel_rules_docker//skylib:zip.bzl @bazel_skylib//lib:BUILD @io_bazel_rules_scala//scala:scala_toolchain.bzl @io_bazel_rules_scala//scala_proto:scala_proto_toolchain.bzl @io_bazel_rules_scala//scala/private:common_outputs.bzl @io_bazel_rules_scala//specs2:BUILD @io_bazel_rules_scala//scala/private:phases/phase_coverage_runfiles.bzl //tools/build_rules:container_image.bzl @io_bazel_rules_scala//scala:semanticdb_provider.bzl @io_bazel_rules_docker//skylib:docker.bzl @io_bazel_rules_scala//scala:scala_maven_import_external.bzl @io_bazel_rules_scala//third_party/repositories:scala_2_13.bzl @io_bazel_rules_scala//scala/private:phases/phase_semanticdb.bzl @bazel_tools//tools/jdk:toolchain_utils.bzl @io_bazel_rules_scala//scala/private:macros/scala_repositories.bzl @io_bazel_rules_scala//scala/private:phases/phase_scalafmt.bzl @io_bazel_rules_scala//scala/private:phases/phase_default_info.bzl @io_bazel_rules_docker//skylib:hash.bzl @io_bazel_rules_docker//container:BUILD @io_bazel_rules_scala//scala/private:phases/phase_declare_executable.bzl @io_bazel_rules_scala//scala/private:dependency.bzl @io_bazel_rules_scala//scala/private/toolchain_deps:BUILD @io_bazel_rules_scala//scala:advanced_usage/providers.bzl @io_bazel_rules_scala//scala/private:phases/phase_collect_exports_jars.bzl @io_bazel_rules_scala//scala/private:macros/setup_scala_toolchain.bzl @io_bazel_rules_scala//scala/private:rules/scala_binary.bzl @io_bazel_rules_scala//scala/private:phases/phase_dependency.bzl @bazel_tools//tools/build_defs/repo:utils.bzl @local_config_platform//:BUILD.bazel @io_bazel_rules_scala//scala/private:phases/phase_jvm_flags.bzl @io_bazel_rules_scala//third_party/repositories:scala_2_12.bzl @io_bazel_rules_scala//third_party/repositories:scala_3_2.bzl @io_bazel_rules_scala//scala/private:phases/phase_test_environment.bzl @io_bazel_rules_scala//scala/private:resources.bzl @io_bazel_rules_scala//scala/private:phases/phase_compile.bzl @io_bazel_rules_docker//skylib:path.bzl @io_bazel_rules_docker//container:providers.bzl @io_bazel_rules_scala_config//:config.bzl @io_bazel_rules_scala//testing:junit.bzl @io_bazel_rules_scala//scala:jars_to_labels.bzl @io_bazel_rules_docker//container:image.bzl @exec_properties//:BUILD @io_bazel_rules_scala//scala/private:phases/api.bzl @io_bazel_rules_docker//skylib:label.bzl @io_bazel_rules_scala//third_party/repositories:scala_3_3.bzl @bazel_tools//tools/jdk:BUILD @bazel_skylib//lib:dicts.bzl @io_bazel_rules_scala//scala:plusone.bzl @io_bazel_rules_scala//third_party/repositories:scala_2_11.bzl @io_bazel_rules_scala//testing/toolchain:BUILD @io_bazel_rules_scala//scala_proto:BUILD @io_bazel_rules_scala//third_party/repositories:BUILD @io_bazel_rules_scala//scala/private:paths.bzl @io_bazel_rules_scala//scala/private:phases/phase_java_wrapper.bzl @io_bazel_rules_scala//scala/private:phases/phase_write_manifest.bzl ], stderr: Loading: 0 packages loaded Loading: 0 packages loaded subtask=-1 task=Build DEBU[0003] Found dependencies for bazel artifact: [BUILD.bazel tools/build_rules/BUILD.bazel tools/build_rules/container_image.bzl WORKSPACE] subtask=-1 task=Build DEBU[0003] Importing artifact us-central1-docker.pkg.dev/project/cluster-name/spellcorrection:a7aaad102a6-dirty from docker registry subtask=-1 task=Build DEBU[0008] Could not import artifact from Docker, building instead (pulling image from repository: Error response from daemon: manifest for us-central1-docker.pkg.dev/project/cluster-name/spellcorrection:a7aaad102a6-dirty not found: manifest unknown: Failed to fetch "a7aaad102a6-dirty") subtask=-1 task=Build - spellcorrection: Not found. Building INFO[0008] Cache check completed in 5.112 seconds subtask=-1 task=Build Starting build... Building [spellcorrection]... DEBU[0008] Running command: [tput colors] subtask=-1 task=DevLoop DEBU[0008] Command output: [256 ] subtask=-1 task=DevLoop the bazel build target should end with .tar, see https://github.com/bazelbuild/rules_docker#using-with-docker-locally DEBU[0008] exporting metrics disabled subtask=-1 task=DevLoop
Hi @cristifalcas in your skaffold.yaml file, build.artifacts.bazel.target should be end with .tar like "//:app.tar"
Oh, thank you so much! It now works
Expected behavior
To be able to use bazel targets to build images
Actual behavior
skaffold build
fails withInformation
skaffold/v4beta7
. Same error for v2.7.1, withskaffold/v4beta4
BAZEL.build:
Steps to reproduce the behavior
Logs: