Читать содержимое файла в WORKSPACE - PullRequest
0 голосов
/ 01 февраля 2020

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

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

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

1 Ответ

0 голосов
/ 03 февраля 2020

Нет прямого способа прочитать файл из файла рабочей области. Правило 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,
)

Базель делает аналогичную вещь в своем файле рабочей области: https://github.com/bazelbuild/bazel/blob/669a1a2634bdf267f890cf88833c9712d4e75016/WORKSPACE#L589

...