Прочитать содержимое файла в WORKSPACE

Я использую container_pullв моем файле WORKSPACE. (Это часть правил докеров bazel)
Вот как это выглядит:

container_pull(
    name = "base-image",
    registry = "registry:9999",
    repository = "base-image",
    digest = "sha256:e6f44554a270025c578c0f91160d809735c2589baae80bafcdeebefb0c0b04b6",
    tag = "1.1.0"
)

Однако есть файл, содержащий версию base-image, и я хочу, чтобы он читался из этого файла вместо жесткого кодирования в WORKSPACE.
Как я могу прочитать содержимое файла в WORKSPACE?

1 ответ

Нет прямого способа прочитать файл из файла рабочей области. Вcontainer_pull Правило должно было бы добавить поддержку чтения из файла.

Обходной путь - поместить файл, содержащий информацию, в .bzl формат и загрузите его из файла рабочей области.

Что-то вроде этого:

versions.bzl:

BASE_IMAGE_VERSION = "1.1.0"

WORKSPACE:

load("//:versions.bzl", "BASE_IMAGE_VERSION")

container_pull(
    name = "base-image",
    registry = "registry:9999",
    repository = "base-image",
    digest = "sha256:e6f44554a270025c578c0f91160d809735c2589baae80bafcdeebefb0c0b04b6",
    tag = BASE_IMAGE_VERSION,
)

Bazel делает то же самое в своем собственном файле рабочей области:https://github.com/bazelbuild/bazel/blob/669a1a2634bdf267f890cf88833c9712d4e75016/WORKSPACE

Другие вопросы по тегам