load("@io_bazel_rules_docker//container:container.bzl", "container_image")
load("@io_bazel_rules_docker//docker/package_managers:download_pkgs.bzl", "download_pkgs")
load("@io_bazel_rules_docker//docker/package_managers:install_pkgs.bzl", "install_pkgs")

package(default_visibility = ["//visibility:public"])

download_pkgs(
    name = "download-base-production-image",
    image_tar = "//images:base-image.tar",
    packages = [
        "bash",
        "ca-certificates",
        "libev4",
        "libgomp1",
        "libgoogle-perftools-dev",
        "libprotobuf23",
        "libssl1.1",
    ],
)

install_pkgs(
    name = "install-base-production-image",
    image_tar = "//images:base-image.tar",
    installables_tar = ":download-base-production-image.tar",
    output_image_name = "base-production-image",
)

container_image(
    name = "base-production-image",
    base = ":install-base-production-image",
    env = {
        "LANG": "C.UTF-8",
        "LC_CTYPE": "en_US.UTF-8",
    },
)

download_pkgs(
    name = "download-base-python-image",
    image_tar = ":base-production-image.tar",
    packages = [
        "python3.9",
        "python3.9-distutils",
    ],
)

install_pkgs(
    name = "install-base-python-image",
    image_tar = ":base-production-image.tar",
    installables_tar = ":download-base-python-image.tar",
    installation_cleanup_commands = "rm -rf /var/lib/apt/lists/*",
    output_image_name = "installed-base-python-image",
)

container_image(
    name = "base-python-image",
    base = ":install-base-python-image",
    entrypoint = ["/usr/bin/python3.9"],
    symlinks = {
        "/usr/bin/python": "/usr/bin/python3.9",
        "/usr/bin/python3": "/usr/bin/python3.9",
    },
    visibility = ["//visibility:public"],
)

download_pkgs(
    name = "download-base-nodejs-image",
    image_tar = ":base-production-image.tar",
    packages = [
        "nodejs",
    ],
)

install_pkgs(
    name = "install-base-nodejs-image",
    image_tar = ":base-production-image.tar",
    installables_tar = ":download-base-nodejs-image.tar",
    installation_cleanup_commands = "rm -rf /var/lib/apt/lists/*",
    output_image_name = "installed-base-nodejs-image",
)

container_image(
    name = "base-nodejs-image",
    base = ":install-base-nodejs-image",
    entrypoint = ["/usr/bin/nodejs"],
    visibility = ["//visibility:public"],
)
