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 )