1

when I run bazel build //leeroy-web, build completes with no issues. However, when I run bazel build //..., I get the following error:

compilepkg: missing strict dependencies:
        /private/var/tmp/_bazel_user/988b526f0a596b82369c6920f2962566/sandbox/darwin-sandbox/96/execroot/__main__/leeroy-web/web.go: import of "github.com/foo/project/leeroy-web/handlers"
        /private/var/tmp/_bazel_user/988b526f0a596b82369c6920f2962566/sandbox/darwin-sandbox/96/execroot/__main__/leeroy-web/web.go: import of "github.com/foo/project/sum-pkg"

I was wondering how I can resolve this. I found something that might be related here: Bazel build docker container with local golang module but wasn't able to apply the solution to my issue. Thank you.

leeroy-web/web.go

package main

import (
    "log"
    "net/http"

    "github.com/foo/project/leeroy-web/handlers"
    sum "github.com/foo/project/sum-pkg"
)

func main() {
    added := sum.Sum(8000, 80)
    log.Printf("%d web server ready", added)
    http.HandleFunc("/", handlers.Handler)
    http.ListenAndServe(":8080", nil)
}

leeroy-web/handlers/handlers.go

package handlers

import (
    "io"
    "net/http"
)

func Handler(w http.ResponseWriter, r *http.Request) {
    resp, err := http.Get("http://leeroy-app:50051")
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()
    if _, err := io.Copy(w, resp.Body); err != nil {
        panic(err)
    }
}

skaffold.yaml

apiVersion: skaffold/v2beta29
kind: Config
build:
  artifacts:
    - image: leeroy-web
      context: leeroy-web
      bazel:
        target: //:leeroy-web-img.tar
deploy:
  kubectl:
    manifests:
      - leeroy-web/kubernetes/*
portForward:
  - resourceType: deployment
    resourceName: leeroy-web
    port: 8080
    localPort: 9000
profiles:
  - name: gcb
    build:
      googleCloudBuild: {}

sum-pkg/sum.go

package sum

func Sum(a int, b int) int {
    return a + b
}

leeroy-web/BUILD

load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
load("@io_bazel_rules_docker//go:image.bzl", "go_image")

go_library(
    name = "leeroy-web_lib",
    srcs = ["web.go"],
    importpath = "github.com/foo/project/leeroy-web",
    visibility = ["//visibility:private"],
    deps = [
        "//leeroy-web/handlers",
        "//sum-pkg",
    ],
)

go_binary(
    name = "leeroy-web",
    embed = [":leeroy-web_lib"],
    visibility = ["//visibility:public"],
)

go_image(
    name = "leeroy-web-img",
    srcs = ["web.go"],
    goarch = "amd64",
    goos = "linux",
    importpath = "github.com/foo/project/leeroy-web",
    static = "on",
)

reactor
  • 1,722
  • 1
  • 14
  • 34
  • [This](https://stackoverflow.com/questions/63622610/bazel-build-missing-strict-dependencies) Reference helps – SG_Bazel Oct 27 '22 at 08:37

0 Answers0