【发布时间】:2021-12-27 03:30:57
【问题描述】:
首先让我说我是 Bazel 的新手。我正在尝试从包含本地模块引用的 golang 项目构建 Docker 容器。
首先我要创建一个本地 golang 模块:
go mod init go-example
这是一般项目结构:
.
├── BUILD.bazel
├── WORKSPACE
├── cmd
│ └── hello
│ ├── BUILD.bazel
│ └── main.go
├── go.mod
├── go.sum
└── pkg
└── echo
├── BUILD.bazel
└── echo.go
在main.go 我正在从本地模块导入pkg/echo。
import (
"go-example/pkg/echo"
)
(top level BUILD.bazel)
...
# gazelle:prefix go-example
✅ 默认 bazel 构建工作
$ bazel run //:gazelle
$ bazel build //cmd/hello
❌ Docker 构建失败。我收到以下错误:
(cmd/hello/BUILD.bazel)
...
go_image(
name = "docker",
srcs = ["main.go"],
importpath = "go-example/cmd/hello",
)
$ bazel build //cmd/hello:docker
...
compilepkg: missing strict dependencies:
/private/var/tmp/_bazel[...]/__main__/cmd/hello/main.go: import of "go-example/pkg/echo"
No dependencies were provided.
【问题讨论】:
标签: docker go bazel go-modules bazel-rules