Запуск сборки докеров с базовым правилом и файлом докеров

У меня есть монорепозиторий с несколькими языками и артефактами, и я хочу перейти на Bazel. Мы хотим создавать образы докеров, используя наши существующие Dockerfiles, используя genrule, чтобы избежать перевода всех dockerfiles в docker-rules (по крайней мере, на данный момент).

Мы знаем, что это не лучшая практика Bazel, но мы предположили, что это позволит нам легко осуществить переход.

Я тестирую этот Dockerfile

      FROM alpine:3.8
ENTRYPOINT ["echo"]
CMD ["Hello Bazel!"]

Я пытался следовать этому сообщению, но при запуске команды сборки докера (даже из Bazel) я получаю следующее:

      > tar -czh . | docker build -t hello-bazel -

[+] Building 0.1s (2/2) FINISHED                                                                                                                        
 => [internal] load remote build context                                                                                                           0.0s
 => ERROR copy /context /                                                                                                                          0.1s
------
 > copy /context /:
------
failed to solve with frontend dockerfile.v0: failed to read dockerfile: Error processing tar file(gzip: invalid header): 

Я попытался использовать genrule с базовой командой сборки докера -

      genrule(
    name = "gc-hello-bazel",
    srcs = ["Dockerfile"],
    outs = ["imagesha.txt"],
    cmd = "docker build -t hello-bazel -f $(location Dockerfile) . > $@",
    tools = ["Dockerfile"],
)

Но сборка терпит неудачу с

      failed to solve with frontend dockerfile.v0: failed to read dockerfile: open Dockerfile: no such file or directory

если это имеет значение, это моя структура каталогов:

      -WORKSPACE
-<some-root-dirctories>
-<a-root-directory>
    -<subdir>
       -<subsubdir1>
       -my_docker
           -Dockerfile
           -BUILD.bazel

Что я делаю не так?

TL;DR: я ищу рабочий пример сборки докера с Dockerfile и Genrule от Bazel.

0 ответов

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