Кукловод выбрасывает «изображение не найдено» при беге с Базелем - PullRequest
0 голосов
/ 07 февраля 2020

У меня есть сервис, использующий Puppeteer, который я пытаюсь построить с помощью Bazel. Сборка завершается успешно, но когда я запускаю сервис с Bazel, я получаю «изображение не найдено». Есть ли способ связать бинарный файл Chromium со сборкой или заставить образ установить необходимые зависимости?

Вот мой BUILD.bazel в проекте root.

load("@build_bazel_rules_nodejs//:index.bzl", "nodejs_binary")
load("@io_bazel_rules_docker//nodejs:image.bzl", "nodejs_image")
load("@io_bazel_rules_docker//docker:docker.bzl", "docker_push")

nodejs_binary(
    name = "server",
    data = [
        "index.js",
        "//services/html-export-service/config:files",
        "//services/html-export-service/grpc-service:files",
        "//services/html-export-service/helpers:files",
        "//services/html-export-service/logger:files",
        "//services/html-export-service/middleware:files",
        "//services/html-export-service/writer:files",
        "//services/html-export-service/uploader:files",
        "//services/html-export-service/views:files",
        "@html_exporter_npm//@google-cloud/storage",
        "@html_exporter_npm//@grpc/proto-loader",
        "@html_exporter_npm//express",
        "@html_exporter_npm//grpc",
        "@html_exporter_npm//puppeteer",
        "@html_exporter_npm//winston",
    ],
    entry_point = ":index.js",
)

nodejs_image(
    name = "nodejs-image",
    binary = ":server",
)

docker_push(
    name = "docker-push",
    image = ":nodejs-image",
    registry = "<image-repo>",
    repository = "<project>/<image-dir>/html-exporter",
    tag = "0.1.0",
)

Вот соответствующие строки рабочего пространства:

workspace(
    name = "<workspace_name>",
      managed_directories = {
        "@gql_api_gateway_npm": ["services/gql-api-gateway/node_modules"],
        "@html_exporter_npm": ["services/html-export-service/node_modules"],
      },
    )

http_archive(
    name = "build_bazel_rules_nodejs",
    sha256 = "9473b207f1c5a61b603442cbfeeea8aaf2aa62870673fce2a1c52087f6ff4dc9",
    urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/1.2.4/rules_nodejs-1.2.4.tar.gz"],
)

load("@build_bazel_rules_nodejs//:index.bzl", "yarn_install")

yarn_install(
    name = "html_exporter_npm",
    package_json = "//services/html-export-service:package.json",
    yarn_lock = "//services/html-export-service:yarn.lock",
)

load(
    "@io_bazel_rules_docker//nodejs:image.bzl",
    _nodejs_image_repos = "repositories",
)

_nodejs_image_repos()
...