github.com/prysmaticlabs/prysm@v1.4.4/tools/BUILD.bazel (about)

     1  load("@bazel_tools//tools/build_defs/pkg:pkg.bzl", "pkg_tar")
     2  load("@io_bazel_rules_docker//contrib:passwd.bzl", "passwd_entry", "passwd_file")
     3  load("@io_bazel_rules_docker//container:container.bzl", "container_image")
     4  load("@io_bazel_rules_docker//cc:image.bzl", CC_DEFAULT_BASE = "DEFAULT_BASE")
     5  load("@io_bazel_rules_docker//go:image.bzl", GO_DEFAULT_BASE = "DEFAULT_BASE")
     6  load("//tools:build_settings.bzl", "base_image")
     7  
     8  sh_binary(
     9      name = "fuzz_wrapper",
    10      srcs = ["fuzz_wrapper.sh"],
    11  )
    12  
    13  ################################################################################
    14  ##                      Docker images as non-root user                        ##
    15  ################################################################################
    16  
    17  # Create a passwd file with a root and nonroot user and uid.
    18  passwd_entry(
    19      name = "root_user",
    20      gid = 0,
    21      uid = 0,
    22      username = "root",
    23  )
    24  
    25  passwd_entry(
    26      name = "nonroot_user",
    27      info = "nonroot",
    28      uid = 1001,
    29      username = "nonroot",
    30  )
    31  
    32  passwd_file(
    33      name = "passwd",
    34      entries = [
    35          ":root_user",
    36          ":nonroot_user",
    37      ],
    38  )
    39  
    40  # Create a tar file containing the created passwd file
    41  pkg_tar(
    42      name = "passwd_tar",
    43      srcs = [":passwd"],
    44      mode = "0o644",
    45      package_dir = "etc",
    46  )
    47  
    48  # Include it in our base image as a tar.
    49  container_image(
    50      name = "cc_image",
    51      base = CC_DEFAULT_BASE,
    52      tars = [":passwd_tar"],
    53      user = "root",
    54      visibility = ["//visibility:public"],
    55  )
    56  
    57  container_image(
    58      name = "go_image",
    59      base = GO_DEFAULT_BASE,
    60      tars = [":passwd_tar"],
    61      user = "root",
    62      visibility = ["//visibility:public"],
    63  )
    64  
    65  base_image(
    66      name = "base_image",
    67      build_setting_default = "cc_image",
    68  )
    69  
    70  config_setting(
    71      name = "base_image_alpine",
    72      flag_values = {"//tools:base_image": "alpine"},
    73  )
    74  
    75  config_setting(
    76      name = "base_image_cc",
    77      flag_values = {"//tools:base_image": "cc_image"},
    78  )
    79  
    80  container_image(
    81      name = "alpine_cc_image",
    82      base = "@alpine_cc_linux_amd64//image",
    83      tars = [":passwd_tar"],
    84      user = "root",
    85      visibility = ["//visibility:public"],
    86  )