diff --git a/.bazelci/presubmit.yml b/.bazelci/presubmit.yml
index 3d7b701..d17bf01 100644
--- a/.bazelci/presubmit.yml
+++ b/.bazelci/presubmit.yml
@@ -2,26 +2,15 @@
 platforms:
   rbe_ubuntu1604:
     test_targets:
-    - "//tests/config:debian-jessie-autoconfig_test"
-    # TODO(nlopezgi): reenable this test once bazel 0.19.2 is out
-    #- "//tests/config:debian-jessie-bazel-head-autoconfig_test"
-    - "//tests/config:debian-jessie-custom-bazel-rc-version-autoconfig_test"
     - "//tests/config:ubuntu-xenial-autoconfig_test"
+    # TODO(nlopezgi): reenable this test once bazel 0.19.2 is out
     #- "//tests/config:ubuntu-xenial-bazel-head-autoconfig_test"
     - "//tests/config:ubuntu-xenial-custom-bazel-rc-version-autoconfig_test"
     - "//tests/config:debian8_clang_autoconfig_test"
     - "//tests/config:external-repo-autoconfig_test"
     - "//tests/config:this-project-repo-autoconfig"
-    - "//configs/debian8_clang:default-debian8-clang-0.4.0-bazel_0.18.0-autoconfig_test"
-    - "//configs/debian8_clang:msan-debian8-clang-0.4.0-bazel_0.18.0-autoconfig_test"
     - "//configs/ubuntu16_04_clang:default-ubuntu16_04-clang-1.1-bazel_0.18.0-autoconfig_test"
     - "//configs/ubuntu16_04_clang:msan-ubuntu16_04-clang-1.1-bazel_0.18.0-autoconfig_test"
-    - "//container/debian8/builders/rbe-debian8:toolchain-test"
-    - "//container/ubuntu16_04/builders/rbe-ubuntu16_04:toolchain-test"
-    - "//container/ubuntu16_04/builders/bazel:bazel_0.18.0-test"
-    - "//container/ubuntu16_04/builders/bazel_docker_gcloud:bazel_0.18.0_docker_gcloud-test"
-    - "//container/debian8/builders/bazel:bazel_0.18.0-test"
-    - "//container/ubuntu14_04/builders/bazel:bazel_0.18.0-test"
     test_flags:
     - "--test_output=errors"
     - "--verbose_failures"
diff --git a/README.md b/README.md
index a0cfaad..eedabd5 100644
--- a/README.md
+++ b/README.md
@@ -18,3 +18,8 @@
 https://releases.bazel.build/bazel-toolchains.html.
 
 This repository also hosts the skylark rule used to generate toolchain configs.
+
+This repo previously contained Bazel targets that are used to generate toolchain
+containers. Note that they have been migrated to the following two repos:
+* [layer-definitions](https://github.com/GoogleCloudPlatform/layer-definitions)
+* [container-definitions](https://github.com/GoogleCloudPlatform/container-definitions)
\ No newline at end of file
diff --git a/configs/debian8_clang/0.3.0/BUILD b/configs/debian8_clang/0.3.0/BUILD
index bf91d10..6aee1fa 100644
--- a/configs/debian8_clang/0.3.0/BUILD
+++ b/configs/debian8_clang/0.3.0/BUILD
@@ -14,11 +14,6 @@
 
 package(default_visibility = ["//visibility:public"])
 
-load(
-    "//third_party/openjdk:revision.bzl",
-    JDK_VERSION = "JDK_VERSION_DECODED",
-)
-
 java_runtime(
     name = "jdk8",
     srcs = [],
@@ -28,7 +23,7 @@
 java_runtime(
     name = "jdk10",
     srcs = [],
-    java_home = "/usr/lib/jvm/zulu" + JDK_VERSION + "-linux_x64-allmodules",
+    java_home = "/usr/lib/jvm/zulu10.2+3-jdk10.0.1-linux_x64-allmodules",
 )
 
 # Update every time when a new container is available publically.
diff --git a/configs/debian8_clang/0.4.0/BUILD b/configs/debian8_clang/0.4.0/BUILD
index 2fe53a5..f5a4b9e 100644
--- a/configs/debian8_clang/0.4.0/BUILD
+++ b/configs/debian8_clang/0.4.0/BUILD
@@ -14,11 +14,6 @@
 
 package(default_visibility = ["//visibility:public"])
 
-load(
-    "//third_party/openjdk:revision.bzl",
-    JDK_VERSION = "JDK_VERSION_DECODED",
-)
-
 java_runtime(
     name = "jdk8",
     srcs = [],
@@ -28,7 +23,7 @@
 java_runtime(
     name = "jdk10",
     srcs = [],
-    java_home = "/usr/lib/jvm/zulu" + JDK_VERSION + "-linux_x64-allmodules",
+    java_home = "/usr/lib/jvm/zulu10.2+3-jdk10.0.1-linux_x64-allmodules",
 )
 
 # Update every time when a new container is available publically.
diff --git a/configs/ubuntu16_04_clang/1.0/BUILD b/configs/ubuntu16_04_clang/1.0/BUILD
index 9d2a98b..0d6e2ac 100644
--- a/configs/ubuntu16_04_clang/1.0/BUILD
+++ b/configs/ubuntu16_04_clang/1.0/BUILD
@@ -14,11 +14,6 @@
 
 package(default_visibility = ["//visibility:public"])
 
-load(
-    "//third_party/openjdk:revision.bzl",
-    JDK_VERSION = "JDK_VERSION_DECODED",
-)
-
 java_runtime(
     name = "jdk8",
     srcs = [],
@@ -28,7 +23,7 @@
 java_runtime(
     name = "jdk10",
     srcs = [],
-    java_home = "/usr/lib/jvm/zulu" + JDK_VERSION + "-linux_x64-allmodules",
+    java_home = "/usr/lib/jvm/zulu10.2+3-jdk10.0.1-linux_x64-allmodules",
 )
 
 # Update every time when a new container is available publically.
@@ -155,5 +150,9 @@
           name: "container-image"
           value:"docker://gcr.io/asci-toolchain/nosla-xenial-docker@sha256:780a96ba94b7666e31ba9a184e5a1742c3398250d47f5b87b1b4a60f8c41f164"
         }
+        properties: {
+          name: "dockerSiblingContainers"
+          value: "true"
+        }
         """,
 )
diff --git a/configs/ubuntu16_04_clang/1.1/BUILD b/configs/ubuntu16_04_clang/1.1/BUILD
index 770cba9..33b1f9a 100644
--- a/configs/ubuntu16_04_clang/1.1/BUILD
+++ b/configs/ubuntu16_04_clang/1.1/BUILD
@@ -14,11 +14,6 @@
 
 package(default_visibility = ["//visibility:public"])
 
-load(
-    "//third_party/openjdk:revision.bzl",
-    JDK_VERSION = "JDK_VERSION_DECODED",
-)
-
 java_runtime(
     name = "jdk8",
     srcs = [],
@@ -28,7 +23,7 @@
 java_runtime(
     name = "jdk10",
     srcs = [],
-    java_home = "/usr/lib/jvm/zulu" + JDK_VERSION + "-linux_x64-allmodules",
+    java_home = "/usr/lib/jvm/zulu10.2+3-jdk10.0.1-linux_x64-allmodules",
 )
 
 # Update every time when a new container is available publically.
@@ -136,6 +131,10 @@
           name: "container-image"
           value:"docker://gcr.io/asci-toolchain/nosla-xenial-docker@sha256:b4f34255823ae7f95f38712b85013ec26926c8c5b565b0d3f1d32e1295394e9d"
         }
+        properties: {
+          name: "dockerSiblingContainers"
+          value: "true"
+        }
         """,
 )
 
diff --git a/container/README.md b/container/README.md
deleted file mode 100644
index 5501489..0000000
--- a/container/README.md
+++ /dev/null
@@ -1,73 +0,0 @@
-## Toolchain Containers
-
-This folder contains artifacts for building a docker container which includes
-all necessary language toolchains (C++, Java, Python, Go and libraries). This
-container is the recommended toolchain container for [Remote caching and
-execution with
-Bazel](https://github.com/bazelbuild/bazel/tree/master/src/main/java/com/google/devtools/build/lib/remote).
-
-## Before you begin
-
-1.  Download and install the [Google Cloud
-    SDK](https://cloud.google.com/sdk/docs/), which includes the
-    [gcloud](https://cloud.google.com/sdk/gcloud/) command-line tool.
-
-1.  Create a [new Google Cloud Platform project from the Cloud
-    Console](https://console.cloud.google.com/project) or use an existing one.
-
-1.  Initialize the Cloud SDK.
-
-        gcloud init
-
-1.  Authenticate `docker` to talk to `gcr.io` by following the instructions [here](https://cloud.google.com/sdk/gcloud/reference/auth/configure-docker).
-
-## Usage
-
-### Build with [Google Cloud Container Builder](https://cloud.google.com/container-builder/)
-
-**Note: currently, this process can only be executed by users who have
-read access to asci-toolchains's GCR. We publish it here to make the build
-process for our containers publicly available. You can still build the
-containers locally. See instructions in the next section.**
-
-You will need a valid project ID to build the toolchain-container.
-
-You can build a toolchain-container with
-[ubuntu16-04](https://console.cloud.google.com/gcr/images/cloud-marketplace/GLOBAL/google/ubuntu16_04) as
-the base container by running:
-
-``` shell
-python container/build.py -p my-project-id -d rbe-ubuntu16_04 -c test-rbe-ubuntu16_04 -t latest -b my-gcs-bucket -v 0.15.2
-```
-
-Congratulations! Your docker container is now available in [Container
-Registry](https://cloud.google.com/container-registry/)
-
-```shell
-gcr.io/my-project-id/test-rbe-ubuntu16_04:latest
-```
-
-You can pull the built container to local
-
-```shell
-gcloud docker -- pull gcr.io/my-project-id/test-rbe-ubuntu16_04:latest
-```
-
-### Build locally
-
-You can also build rbe-ubuntu16-04 container locally to for a quick
-test. You would need
-[Bazel](https://docs.bazel.build/versions/master/install.html) and
-[Docker](https://docs.docker.com/engine/installation/) installed.
-
-Run the following command:
-
-```shell
-python container/build.py -l -d rbe-ubuntu16_04
-```
-
-You docker container is now available locally and you can try it out by running:
-
-```shell
-docker run -it rbe-ubuntu16_04:latest /bin/bash
-```
diff --git a/container/build.py b/container/build.py
deleted file mode 100644
index 0ad4d75..0000000
--- a/container/build.py
+++ /dev/null
@@ -1,419 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-"""usage: build.py -d TYPE [-p PROJECT] [-c CONTAINER] [-t TAG]
-                   -v BAZEL_VERSION [-a] [-b BUCKET] [-h] [-m MAP] [-l]
-
-Builds a toolchain container, with Google Cloud Container Builder or locally.
-
-IF THIS SCRIPT IS CALLED FROM OUTSIDE OF THE BAZEL-TOOLCHAINS REPO, THE
-BAZEL-TOOLCHAINS REPO MUST BE A SUBDIRECTORY OF THE OUTER PROJECT. OUTER PROJECT
-MUST ALSO HAVE bazel_toolchains AS A DEPENDENCY
-Ex:
-cd <your project with your own build targets>
-git clone https://github.com/bazelbuild/bazel-toolchains.git
-python bazel-toolchains/container/build.py [args]
-
-Note: a file path passed to the -m param must point to a file in the form
-descibed below
-(except TYPE_TARBALL_MAP is not required if the -b arg is not used)
-
-To build with Google Cloud Container Builder:
-$ python build.py -p my-gcp-project -d {container_type} -c {container_name} -t
-latest -b my_bucket
-will produce docker images in Google Container Registry:
-    gcr.io/my-gcp-project/{container_type}:latest
-and the debian packages installed will be packed as a tarball and stored in
-gs://my_bucket for future reference, if -b is specified.
-To build locally:
-$ python build.py -d {container_type} -l
-will produce docker locally as {container_type}:latest
-
-required arguments:
-  -d TYPE, --type TYPE  Type of the container: see SUPPORTED_TYPES
-required arguments (for cloud build):
-  -p PROJECT, --project PROJECT
-                        GCP project ID
-  -c CONTAINER, --container CONTAINER
-                        Docker container name
-  -t TAG, --tag TAG     Docker tag for the image
-  -v BAZEL_VERSION, --bazel_version BAZEL_VERSION
-                        The version of Bazel to build the image with on Google
-                        Cloud Container Builder, e.g. 0.15.1 (supported
-                        versions can be seen at
-                        //container/ubuntu16_04/layers/bazel/version.bzl)
-
-optional arguments:
-  -h, --help            print this help text and exit
-
-optional arguments (for cloud build):
-  -a, --async           Asynchronous execute Cloud Container Builder
-  -b BUCKET, --bucket BUCKET
-                        GCS bucket to store the tarball of debian packages
-  -m MAP, --map MAP     path (can be absolute or relative) to file containing
-                        3 maps to override the default ones defined below
-                        (TYPE_PACKAGE_MAP, TYPE_TARGET_MAP, and
-                        TYPE_TARBALL_MAP)
-
-
-standalone arguments:
-  -l, --local           Build container locally
-"""
-
-from __future__ import print_function
-import argparse
-import imp
-import os
-import shlex
-import subprocess
-import sys
-
-LATEST_BAZEL_VERSION = "0.21.0"
-
-SUPPORTED_TYPES = [
-    "rbe-debian8", "rbe-ubuntu16_04", "ubuntu16_04-bazel",
-    "ubuntu16_04-bazel-docker-gcloud", "debian8-bazel", "ubuntu14_04-bazel"
-]
-
-# File passed in -m must include the following 3 maps
-# (all 3 with the same keys, and corresponding values):
-# =========== STARTING HERE ===========
-
-# Map to store all supported container type and
-# the package of target to build it.
-TYPE_PACKAGE_MAP = {
-    "rbe-debian8": "container/debian8/builders/rbe-debian8",
-    "rbe-ubuntu16_04": "container/ubuntu16_04/builders/rbe-ubuntu16_04",
-    "ubuntu16_04-bazel": "container/ubuntu16_04/builders/bazel",
-    "ubuntu16_04-bazel-docker-gcloud":
-        "container/ubuntu16_04/builders/bazel_docker_gcloud",
-    "debian8-bazel": "container/debian8/builders/bazel",
-    "ubuntu14_04-bazel": "container/ubuntu14_04/builders/bazel",
-}
-
-# Map to store all supported container type and the name of target to build it.
-TYPE_TARGET_MAP = {
-    "rbe-debian8": "toolchain",
-    "rbe-ubuntu16_04": "toolchain",
-    "ubuntu16_04-bazel": "bazel_{}".format(LATEST_BAZEL_VERSION),
-    "ubuntu16_04-bazel-docker-gcloud":
-        "bazel_{}_docker_gcloud".format(LATEST_BAZEL_VERSION),
-    "debian8-bazel": "bazel_{}".format(LATEST_BAZEL_VERSION),
-    "ubuntu14_04-bazel": "bazel_{}".format(LATEST_BAZEL_VERSION),
-}
-
-# Map to store all supported container type and the name of target to build it.
-TYPE_TARBALL_MAP = {
-    "rbe-debian8":
-        "toolchain-packages.tar",
-    "rbe-ubuntu16_04":
-        "toolchain-packages.tar",
-    "ubuntu16_04-bazel":
-        "bazel_{}_intermediate-packages.tar".format(LATEST_BAZEL_VERSION),
-    "ubuntu16_04-bazel-docker-gcloud":
-        "bazel_{}_docker_gcloud-packages.tar".format(LATEST_BAZEL_VERSION),
-    "debian8-bazel":
-         "bazel_{}_intermediate-packages.tar".format(LATEST_BAZEL_VERSION),
-    "ubuntu14_04-bazel":
-        "bazel_{}_intermediate-packages.tar".format(LATEST_BAZEL_VERSION),
-}
-
-# =========== ENDING HERE ===========
-assert set(SUPPORTED_TYPES) \
-        == set(TYPE_PACKAGE_MAP.keys()) \
-        == set(TYPE_TARGET_MAP.keys()) \
-        == set(TYPE_TARBALL_MAP.keys()), \
-            "TYPES ARE OUT OF SYNC"
-
-
-def main(type_,
-         project,
-         container,
-         tag,
-         async_,
-         bucket,
-         local,
-         bazel_version,
-         map=None):
-  """Runs the build. More info in module docstring at the top.
-  """
-  type_package_map = TYPE_PACKAGE_MAP
-  type_target_map = TYPE_TARGET_MAP
-  type_tarball_map = TYPE_TARBALL_MAP
-
-  if map:  # Override the map values
-    try:
-      map_module = imp.load_source("map", map)
-    except IOError as e:
-      print("Error reading map file.\n", e)
-
-    try:
-      type_package_map = map_module.TYPE_PACKAGE_MAP
-      type_target_map = map_module.TYPE_TARGET_MAP
-      if bucket:
-        type_tarball_map = map_module.TYPE_TARBALL_MAP
-    except AttributeError as e:
-      print("Error getting attributes from map file.\n", e)
-
-  # Gets the project root (for calling bazel targets)
-  project_root = subprocess.check_output(
-      shlex.split("git rev-parse --show-toplevel")).strip()
-  package = type_package_map[type_]
-  target = type_target_map[type_]
-  tarball = None
-  if bucket:
-    tarball = type_tarball_map[type_]
-
-  # Gets the base directory of the bazel-toolchains repo (relative to project_root)
-  # This is for referencing yaml files and mounting the project to gcloud.
-  # Allows the bazel-toolchains repo to be cloned in any subdirectory
-  # of another project and bazel_toolchains_base_dir will store the relative path
-  # from the root of that git project to the root of the bazel-toolchains git project.
-  # Ex. If we are in folder foo and the structure looks like this:
-  # foo/
-  #     subdir/
-  #         bazel-toolchains
-  #     ...
-  #
-  # Then if we call build.py with the terminal running in foo,
-  # bazel_toolchains_base_dir == "subdir/bazel-toolchains"
-  # (This also allows for renaming of the bazel-toolchains folder as the variable
-  # will store the path regardless of the directory names)
-  os.chdir(os.path.dirname(__file__))
-  bazel_toolchains_base_dir = os.path.relpath(
-      subprocess.check_output(
-          shlex.split("git rev-parse --show-toplevel")).strip(), project_root)
-
-  # We need to start the build from the root of the project, so that we can
-  # mount the full root directory (to use bazel builder properly).
-  os.chdir(project_root)
-  # We need to run clean to make sure we don't mount local build outputs
-  subprocess.check_call(["bazel", "clean"])
-
-  if local:
-    local_build(type_, package, target)
-  else:
-
-    cloud_build(project, container, tag, async_, package, target, bazel_version,
-                bazel_toolchains_base_dir, bucket, tarball)
-
-
-def local_build(type_, package, target):
-  """Runs the build locally. More info in module docstring at the top.
-  """
-  print("Building container locally.")
-  subprocess.check_call(
-      shlex.split("bazel run //{}:{}".format(package, target)))
-  print("Testing container locally.")
-  subprocess.check_call("bazel test //{}:{}-test".format(package,
-                                                         target).split())
-  print("Tagging container.")
-  subprocess.check_call(
-      shlex.split("docker tag bazel/{}:{} {}:latest".format(
-          package, target, type_)))
-  print(("\n{TYPE}:lastest container is now available to use.\n"
-         "To try it: docker run -it {TYPE}:latest \n").format(TYPE=type_))
-
-
-def cloud_build(project,
-                container,
-                tag,
-                async_,
-                package,
-                target,
-                bazel_version,
-                bazel_toolchains_base_dir,
-                bucket=None,
-                tarball=None):
-  """Runs the build in the cloud. More info in module docstring at the top.
-  """
-
-  print("Building container in Google Cloud Container Builder.")
-
-  # Setup GCP project id for the build
-  subprocess.check_call(
-      shlex.split("gcloud config set project {}".format(project)))
-  # Ensure all BUILD files under /third_party have the right permission.
-  # This is because in some systems the BUILD files under /third_party
-  # (after git clone) will be with permission 640 and the build will
-  # fail in Container Builder.
-  for dirpath, _, files in os.walk(
-      os.path.join(bazel_toolchains_base_dir, "third_party")):
-    for f in files:
-      full_path = os.path.join(dirpath, f)
-      os.chmod(full_path, 0o644)
-
-  # Gets the yaml relative to the bazel-toolchains root, regardless of what directory it was called from
-  # MUST BE UPDATED IF THE YAML FILE IS MOVED
-  config_file = "{}/container/cloudbuild.yaml".format(bazel_toolchains_base_dir)
-  extra_substitution = ",_BUCKET={},_TARBALL={}".format(bucket, tarball)
-  if not bucket:
-    # Gets the yaml relative to the bazel-toolchains root, regardless of what directory it was called from
-    # MUST BE UPDATED IF THE YAML FILE IS MOVED
-    config_file = "{}/container/cloudbuild_no_bucket.yaml".format(
-        bazel_toolchains_base_dir)
-    extra_substitution = ""
-
-  async_arg = ""
-  if async_:
-    async_arg = "--async"
-  subprocess.check_call(
-      shlex.split(
-          ("gcloud builds submit . "
-           "--config={CONFIG} "
-           "--substitutions _PROJECT={PROJECT},_CONTAINER={CONTAINER},"
-           "_BAZEL_VERSION={BAZEL_VERSION},"
-           "_TAG={TAG},_PACKAGE={PACKAGE},_TARGET={TARGET}{EXTRA_SUBSTITUTION} "
-           "--machine-type=n1-highcpu-32 "
-           "{ASYNC}").format(
-               CONFIG=config_file,
-               PROJECT=project,
-               CONTAINER=container,
-               TAG=tag,
-               PACKAGE=package,
-               TARGET=target,
-               EXTRA_SUBSTITUTION=extra_substitution,
-               ASYNC=async_arg,
-               BAZEL_VERSION=bazel_version)))
-
-
-def parse_arguments():
-  """Parses command line arguments for the script.
-
-  Returns:
-    args object containing the arguments
-  """
-  parser = argparse.ArgumentParser(
-      add_help=False,
-      formatter_class=argparse.RawDescriptionHelpFormatter,
-      description="""
-Builds a toolchain container, with Google Cloud Container Builder or locally.
-
-IF THIS SCRIPT IS CALLED FROM OUTSIDE OF THE BAZEL-TOOLCHAINS REPO, THE BAZEL-TOOLCHAINS REPO
-MUST BE A SUBDIRECTORY OF THE OUTER PROJECT. OUTER PROJECT MUST ALSO HAVE bazel_toolchains AS
-A DEPENDENCY
-Ex:
-cd <your project with your own build targets>
-git clone https://github.com/bazelbuild/bazel-toolchains.git
-python bazel-toolchains/container/build.py [args]
-
-Note: a file path passed to the -m param must point to a file in the form descibed above
-(except TYPE_TARBALL_MAP is not required if the -b arg is not used)
-
-To build with Google Cloud Container Builder:
-$ python build.py -p my-gcp-project -d {container_type} -c {container_name} -t latest -b my_bucket
-will produce docker images in Google Container Registry:
-    gcr.io/my-gcp-project/{container_type}:latest
-and the debian packages installed will be packed as a tarball and stored in
-gs://my_bucket for future reference, if -b is specified.
-To build locally:
-$ python build.py -d {container_type} -l
-will produce docker locally as {container_type}:latest
-
-""",
-  )
-
-  required = parser.add_argument_group("required arguments")
-
-  required.add_argument(
-      "-d,",
-      "--type",
-      help="Type of the container: see SUPPORTED_TYPES",
-      type=str,
-      choices=TYPE_PACKAGE_MAP.keys(),
-      required=True)
-
-  required_cloud = parser.add_argument_group(
-      "required arguments (for cloud build)")
-  required_cloud.add_argument(
-      "-p", "--project", help="GCP project ID", type=str)
-  required_cloud.add_argument(
-      "-c", "--container", help="Docker container name", type=str)
-  required_cloud.add_argument(
-      "-t", "--tag", help="Docker tag for the image", type=str)
-
-  required_cloud.add_argument(
-      "-v",
-      "--bazel_version",
-      help=
-      "The version of Bazel to build the image with on Google Cloud Container Builder, e.g. 0.15.1 "
-      "(supported versions can be seen at //container/ubuntu16_04/layers/bazel/version.bzl)",
-      type=str)
-
-  optional = parser.add_argument_group("optional arguments")
-  optional.add_argument(
-      "-h", "--help", help="print this help text and exit", action="help")
-
-  optional_cloud = parser.add_argument_group(
-      "optional arguments (for cloud build)")
-
-  optional_cloud.add_argument(
-      "-a",
-      "--async",
-      help="Asynchronous execute Cloud Container Builder",
-      required=False,
-      default=False,
-      action="store_true")
-  optional_cloud.add_argument(
-      "-b",
-      "--bucket",
-      help="GCS bucket to store the tarball of debian packages",
-      type=str,
-      required=False,
-      default="")
-  optional_cloud.add_argument(
-      "-m",
-      "--map",
-      help=
-      "path (can be absolute or relative) to file containing 3 maps to "
-      "override the default ones defined below "
-      "(TYPE_PACKAGE_MAP, TYPE_TARGET_MAP, and TYPE_TARBALL_MAP)",
-      type=str,
-      default=None)
-
-  standalone = parser.add_argument_group("standalone arguments")
-
-  standalone.add_argument(
-      "-l",
-      "--local",
-      help="Build container locally",
-      default=False,
-      action="store_true")
-
-  arguments = parser.parse_args()
-
-  # Check arguments
-  if not arguments.local and not \
-    (arguments.tag and arguments.project and arguments.container and arguments.bazel_version):
-    print(
-        "error: If build is not local (-l), then -p, -c, -t, and -v are required",
-        file=sys.stderr)
-    exit(1)
-
-  if arguments.local and (arguments.tag or arguments.map or arguments.project or
-                          arguments.bazel_version or arguments.container or
-                          arguments.bucket or arguments.async):
-    print(
-        "error: If build is local (-l), then only -d is allowed (and required)",
-        file=sys.stderr)
-    exit(1)
-
-  return arguments
-
-
-if __name__ == "__main__":
-  args = parse_arguments()
-  main(args.type, args.project, args.container, args.tag, args.async,
-       args.bucket, args.local, args.bazel_version, args.map)
diff --git a/container/cloudbuild.yaml b/container/cloudbuild.yaml
deleted file mode 100644
index 7715690..0000000
--- a/container/cloudbuild.yaml
+++ /dev/null
@@ -1,86 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# ====================================================================
-# This yaml file should be kept synced with cloudbuild_no_bucket.yaml.
-# ====================================================================
-
-timeout: 21600s
-
-steps:
-# Step: print the bazel version for confirmation
-  - name: 'gcr.io/asci-toolchain/nosla-ubuntu16_04-bazel-docker-gcloud:${_BAZEL_VERSION}'
-    args:
-    - 'bazel'
-    - 'version'
-    id: 'version'
-    waitFor:
-    - "-" # wait for nothing - start immediately
-
-# Step: build the fully loaded container using rules_docker
-  - name: 'gcr.io/asci-toolchain/nosla-ubuntu16_04-bazel-docker-gcloud:${_BAZEL_VERSION}'
-    # Set Bazel output_base to /workspace, which is a mounted directory on Google Cloud Builder.
-    # This is to make sure Bazel generated files can be accessed by multiple containers.
-    args: [
-      'bazel',
-      '--output_base=/workspace',
-      'run' ,
-      '--verbose_failures',
-      '--spawn_strategy=standalone',
-      '--genrule_strategy=standalone',
-      '//${_PACKAGE}:${_TARGET}'
-    ]
-    id: 'container-build'
-    waitFor:
-    - 'version'
-
-# Step: re-tag the image
-  - name: 'gcr.io/asci-toolchain/nosla-ubuntu16_04-bazel-docker-gcloud:${_BAZEL_VERSION}'
-    args: ['docker', 'tag', 'bazel/${_PACKAGE}:${_TARGET}', 'gcr.io/${_PROJECT}/${_CONTAINER}:${_TAG}']
-    id: 'container-tag'
-    waitFor: # wait for all artifacts to be ready
-    - 'container-build'
-
-# Step: test the image
-# We use container_test rule, which is a Bazel wrapper of container_structure_test.
-# https://github.com/bazelbuild/rules_docker/blob/master/contrib/test.bzl
-  - name: 'gcr.io/asci-toolchain/nosla-ubuntu16_04-bazel-docker-gcloud:${_BAZEL_VERSION}'
-    args: [
-      'bazel',
-      '--output_base=/workspace',
-      'test',
-      '--test_output=all',
-      '--verbose_failures',
-      '--spawn_strategy=standalone',
-      '--genrule_strategy=standalone',
-      '//${_PACKAGE}:${_TARGET}-test'
-    ]
-    id: 'image-test'
-    waitFor:
-    - 'container-build'
-
-# Step: store the tarball of debian packages in GCS
-  - name: 'gcr.io/asci-toolchain/nosla-ubuntu16_04-bazel-docker-gcloud:${_BAZEL_VERSION}'
-    args: ['gsutil',
-           'cp',
-           '/workspace/bazel-out/k8-fastbuild/bin/${_PACKAGE}/${_TARBALL}',
-           'gs://${_BUCKET}/${_CONTAINER}-${_TAG}-${BUILD_ID}.tar'
-    ]
-    id: 'upload-debs'
-    waitFor:
-    - 'image-test'
-
-# Build the release-container
-images:
-  - 'gcr.io/${_PROJECT}/${_CONTAINER}:${_TAG}'
diff --git a/container/cloudbuild_no_bucket.yaml b/container/cloudbuild_no_bucket.yaml
deleted file mode 100644
index 696378b..0000000
--- a/container/cloudbuild_no_bucket.yaml
+++ /dev/null
@@ -1,75 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# ==========================================================
-# This yaml file should be kept synced with cloudbuild.yaml.
-# ==========================================================
-
-timeout: 21600s
-
-steps:
-# Step: print the bazel version for confirmation
-  - name: 'gcr.io/asci-toolchain/nosla-ubuntu16_04-bazel-docker-gcloud:${_BAZEL_VERSION}'
-    args:
-    - 'bazel'
-    - 'version'
-    id: 'version'
-    waitFor:
-    - "-" # wait for nothing - start immediately
-
-# Step: build the fully loaded container using rules_docker
-  - name: 'gcr.io/asci-toolchain/nosla-ubuntu16_04-bazel-docker-gcloud:${_BAZEL_VERSION}'
-    # Set Bazel output_base to /workspace, which is a mounted directory on Google Cloud Builder.
-    # This is to make sure Bazel generated files can be accessed by multiple containers.
-    args: [
-      'bazel',
-      '--output_base=/workspace',
-      'run' ,
-      '--verbose_failures',
-      '--spawn_strategy=standalone',
-      '--genrule_strategy=standalone',
-      '//${_PACKAGE}:${_TARGET}'
-    ]
-    id: 'container-build'
-    waitFor:
-    - 'version'
-
-# Step: re-tag the image
-  - name: 'gcr.io/asci-toolchain/nosla-ubuntu16_04-bazel-docker-gcloud:${_BAZEL_VERSION}'
-    args: ['docker', 'tag', 'bazel/${_PACKAGE}:${_TARGET}', 'gcr.io/${_PROJECT}/${_CONTAINER}:${_TAG}']
-    id: 'container-tag'
-    waitFor: # wait for all artifacts to be ready
-    - 'container-build'
-
-# Step: test the image
-# We use container_test rule, which is a Bazel wrapper of container_structure_test.
-# https://github.com/bazelbuild/rules_docker/blob/master/contrib/test.bzl
-  - name: 'gcr.io/asci-toolchain/nosla-ubuntu16_04-bazel-docker-gcloud:${_BAZEL_VERSION}'
-    args: [
-      'bazel',
-      '--output_base=/workspace',
-      'test',
-      '--test_output=all',
-      '--verbose_failures',
-      '--spawn_strategy=standalone',
-      '--genrule_strategy=standalone',
-      '//${_PACKAGE}:${_TARGET}-test'
-    ]
-    id: 'image-test'
-    waitFor:
-    - 'container-build'
-
-# Build the release-container
-images:
-  - 'gcr.io/${_PROJECT}/${_CONTAINER}:${_TAG}'
diff --git a/container/common/BUILD b/container/common/BUILD
deleted file mode 100644
index c19ce8b..0000000
--- a/container/common/BUILD
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
-
-exports_files(glob(["*.yaml"]))
-
-load(
-    "//third_party/golang:revision.bzl",
-    "GOLANG_REVISION",
-)
-load(
-    "//third_party/openjdk:revision.bzl",
-    "JDK_VERSION",
-    "JDK_VERSION_DECODED",
-)
-
-genrule(
-    name = "generate_go_yaml",
-    srcs = ["go.yaml.tpl"],
-    outs = ["go.yaml"],
-    cmd = "sed 's|{_GOLANG_REVISION}|" + GOLANG_REVISION + "|' <$< >$@",
-)
-
-genrule(
-    name = "generate_java_yaml",
-    srcs = ["java.yaml.tpl"],
-    outs = ["java.yaml"],
-    cmd = (
-        "sed 's|{_JDK_VERSION}|" + JDK_VERSION + "|g; s|{_JDK_VERSION_DECODED}|" + JDK_VERSION_DECODED + "|g' <$< >$@"
-    ),
-)
diff --git a/container/common/bazel/BUILD b/container/common/bazel/BUILD
deleted file mode 100644
index caa7089..0000000
--- a/container/common/bazel/BUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
-
-load("//container/common/bazel:version.bzl", "BAZEL_VERSION_SHA256S")
-
-exports_files(glob(["**"]))
-
-# Generate Bazel container testing yaml files with all supported Bazel versions.
-[genrule(
-    name = "generate_bazel_%s_yaml" % bazel_version,
-    srcs = [":bazel.yaml.tpl"],
-    outs = ["bazel_%s.yaml" % bazel_version],
-    cmd = "sed 's|{_BAZEL_VERSION}|" + bazel_version + "|' <$< >$@",
-) for bazel_version, _ in BAZEL_VERSION_SHA256S.items()]
diff --git a/container/common/bazel/bazel.bazelrc b/container/common/bazel/bazel.bazelrc
deleted file mode 100644
index f0b41e6..0000000
--- a/container/common/bazel/bazel.bazelrc
+++ /dev/null
@@ -1,33 +0,0 @@
-# Copyright 2016 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Experimental configs for sanitizers, use --config=<asan/tsan/msan>
-# See https://github.com/bazelbuild/bazel/issues/5291.
-build:xxsan --copt=-gmlt
-build:xxsan --strip=never
-
-build:asan --config=xxsan
-build:asan --copt=-fsanitize=address
-build:asan --linkopt=-fsanitize=address
-
-build:tsan --config=xxsan
-build:tsan --copt=-fsanitize=thread
-build:tsan --linkopt=-fsanitize=thread
-
-build:msan --config=xxsan
-build:msan --copt=-fsanitize=memory
-build:msan --linkopt=-fsanitize=memory
-build:msan --cxxopt=--stdlib=libc++
-build:msan --copt=-fsanitize-memory-track-origins
-build:msan --action_env=BAZEL_LINKOPTS=-lc++:-lc++abi:-lm
diff --git a/container/common/bazel/bazel.yaml.tpl b/container/common/bazel/bazel.yaml.tpl
deleted file mode 100644
index ccac4b4..0000000
--- a/container/common/bazel/bazel.yaml.tpl
+++ /dev/null
@@ -1,12 +0,0 @@
-schemaVersion: "2.0.0"
-
-commandTests:
-- name: 'check-bazel'
-  command: 'bazel'
-  args: ['version']
-  expectedOutput: ['Build label: {_BAZEL_VERSION}']
-
-fileExistenceTests:
-- name: 'bazelrc'
-  path: '/etc/bazel.bazelrc'
-  shouldExist: true
diff --git a/container/common/bazel/bazel_tools.yaml b/container/common/bazel/bazel_tools.yaml
deleted file mode 100644
index ea2aea3..0000000
--- a/container/common/bazel/bazel_tools.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-schemaVersion: "2.0.0"
-
-commandTests:
-# 'check-ar' is used to test binutils.
-- name: 'check-ar'
-  command: 'ar'
-  args: ['--version']
-  expectedOutput: ['GNU ar .*']
-- name: 'check-patch'
-  command: 'patch'
-  args: ['--version']
-  expectedOutput: ['GNU patch .*']
-- name: 'check-unzip'
-  command: 'unzip'
-  expectedOutput: ['.*Usage: unzip .*']
-- name: 'check-zip'
-  command: 'zip'
-  args: ['--version']
-  expectedOutput: ['.*This is Zip.*']
diff --git a/container/common/bazel/extra_tools.yaml b/container/common/bazel/extra_tools.yaml
deleted file mode 100644
index f48e0a5..0000000
--- a/container/common/bazel/extra_tools.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-schemaVersion: "2.0.0"
-
-commandTests:
-- name: 'check-git'
-  command: 'git'
-  args: ['--version']
-  expectedOutput: ['git version .*']
-- name: 'check-wget'
-  command: 'wget'
-  args: ['--version']
-  expectedOutput: ['GNU Wget.* built on linux-gnu.*']
diff --git a/container/common/bazel/version.bzl b/container/common/bazel/version.bzl
deleted file mode 100644
index 4258fbb..0000000
--- a/container/common/bazel/version.bzl
+++ /dev/null
@@ -1,14 +0,0 @@
-BAZEL_VERSION_SHA256S = {
-    "0.14.1": "7b14e4fc76bf85c4abf805833e99f560f124a3b96d56e0712c693e94e19d1376",
-    "0.15.0": "7f6748b48a7ea6bdf00b0e1967909ce2181ebe6f377638aa454a7d09a0e3ea7b",
-    "0.15.2": "13eae0f09565cf17fc1c9ce1053b9eac14c11e726a2215a79ebaf5bdbf435241",
-    "0.16.1": "17ab70344645359fd4178002f367885e9019ae7507c9c1ade8220f3628383444",
-    "0.17.1": "feedbe02c81142ed95ef8d380472f0a0d88e1b9a4b1fb6e21728701032b68e02",
-    "0.17.2": "31fac8b2edcc6d95f1afb21725f604479eb440596e7fc7554fd47e293020ced9",
-    "0.18.0": "48ddaa9c9fef73dbe68517f274f09b33c3c8fdf3410638808b609f82b177d397",
-    "0.18.1": "8073657ced2bb323dd2e7ba6e39011ca56b856cae475b476e9b77d30123582e5",
-    "0.19.0": "b9e988643b10444d6d8eb04461418b7b80e3d171e12d1c8b6e2a50f541e739e7",
-    "0.19.2": "42ba631103011594cdf5591ef07658a9e9a5d73c5ee98a9f09651ac4ac535d8c",
-    "0.20.0": "44aed3bd8e58a889ee36f187a4b1cb573a2b4cc7a3d7c0cf0696205764e45dec",
-    "0.21.0": "328d5fa87a61e1f6e674a8f88c5ae54b8987eaf5a6c944257600c5029c8feef8",
-}
diff --git a/container/common/clang/BUILD b/container/common/clang/BUILD
deleted file mode 100644
index 5fce108..0000000
--- a/container/common/clang/BUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright 2016 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
-
-load(
-    "//third_party/clang:revision.bzl",
-    "CLANG_REVISION",
-)
-
-genrule(
-    name = "generate_clang_yaml",
-    srcs = ["clang.yaml.tpl"],
-    outs = ["clang.yaml"],
-    cmd = "sed 's|{_CLANG_REVISION}|" + CLANG_REVISION.lstrip("r") + "|' <$< >$@",
-)
diff --git a/container/common/clang/clang.bzl b/container/common/clang/clang.bzl
deleted file mode 100644
index 85d956a..0000000
--- a/container/common/clang/clang.bzl
+++ /dev/null
@@ -1,9 +0,0 @@
-clang_env = {
-    "CC": "/usr/local/bin/clang",
-    "GCOV": "/dev/null",
-    "ASAN_SYMBOLIZER_PATH": "/usr/local/bin/llvm-symbolizer",
-    "MSAN_SYMBOLIZER_PATH": "/usr/local/bin/llvm-symbolizer",
-    "TSAN_SYMBOLIZER_PATH": "/usr/local/bin/llvm-symbolizer",
-    "UBSAN_SYMBOLIZER_PATH": "/usr/local/bin/llvm-symbolizer",
-    "LD_LIBRARY_PATH": "/usr/local/lib",
-}
diff --git a/container/common/clang/clang.yaml.tpl b/container/common/clang/clang.yaml.tpl
deleted file mode 100644
index 8be334e..0000000
--- a/container/common/clang/clang.yaml.tpl
+++ /dev/null
@@ -1,64 +0,0 @@
-schemaVersion: "2.0.0"
-
-commandTests:
-- name: 'clang-version'
-  command: 'clang'
-  args: ['--version']
-  expectedOutput: ['clang version 8.0.0 [(]trunk {_CLANG_REVISION}[)]']
-
-fileExistenceTests:
-- name: 'Clang'
-  path: '/usr/local/bin/clang'
-  shouldExist: true
-- name: 'libcxx-header'
-  path: '/usr/local/include/c++/v1'
-  shouldExist: true
-- name: 'libcxx-lib'
-  path: '/usr/local/lib/libc++.a'
-  shouldExist: true
-- name: 'llvm-symbolizer'
-  path: '/usr/local/bin/llvm-symbolizer'
-  shouldExist: true
-- name: 'sanitizer'
-  path: '/usr/local/lib/clang/8.0.0/include/sanitizer'
-  shouldExist: true
-- name: 'sanitizer-allocator'
-  path: '/usr/local/lib/clang/8.0.0/include/sanitizer/allocator_interface.h'
-  shouldExist: true
-- name: 'sanitizer-asan'
-  path: '/usr/local/lib/clang/8.0.0/include/sanitizer/asan_interface.h'
-  shouldExist: true
-- name: 'sanitizer-common_defs'
-  path: '/usr/local/lib/clang/8.0.0/include/sanitizer/common_interface_defs.h'
-  shouldExist: true
-- name: 'sanitizer-coverage'
-  path: '/usr/local/lib/clang/8.0.0/include/sanitizer/coverage_interface.h'
-  shouldExist: true
-- name: 'sanitizer-dfsan'
-  path: '/usr/local/lib/clang/8.0.0/include/sanitizer/dfsan_interface.h'
-  shouldExist: true
-- name: 'sanitizer-esan'
-  path: '/usr/local/lib/clang/8.0.0/include/sanitizer/esan_interface.h'
-  shouldExist: true
-- name: 'sanitizer-linux_syscall_hooks'
-  path: '/usr/local/lib/clang/8.0.0/include/sanitizer/linux_syscall_hooks.h'
-  shouldExist: true
-- name: 'sanitizer-lsan'
-  path: '/usr/local/lib/clang/8.0.0/include/sanitizer/lsan_interface.h'
-  shouldExist: true
-- name: 'sanitizer-msan'
-  path: '/usr/local/lib/clang/8.0.0/include/sanitizer/msan_interface.h'
-  shouldExist: true
-- name: 'sanitizer-tsan_atomic'
-  path: '/usr/local/lib/clang/8.0.0/include/sanitizer/tsan_interface_atomic.h'
-  shouldExist: true
-- name: 'sanitizer-tsan'
-  path: '/usr/local/lib/clang/8.0.0/include/sanitizer/tsan_interface.h'
-  shouldExist: true
-
-metadataTest:
-  env:
-    - key: 'CC'
-      value: '/usr/local/bin/clang'
-    - key: 'GCOV'
-      value: '/dev/null'
diff --git a/container/common/docker-17.12.0.yaml b/container/common/docker-17.12.0.yaml
deleted file mode 100644
index 37477d7..0000000
--- a/container/common/docker-17.12.0.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
-schemaVersion: "2.0.0"
-
-commandTests:
-- name: 'check-docker'
-  command: 'docker'
-  args: ['--version']
-  expectedOutput: ['Docker version 17.12.0.*']
diff --git a/container/common/gcloud/BUILD b/container/common/gcloud/BUILD
deleted file mode 100644
index dfcedc7..0000000
--- a/container/common/gcloud/BUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
-
-load(
-    "//container/common/gcloud:version.bzl",
-    "GCLOUD_VERSION",
-)
-
-genrule(
-    name = "generate_gcloud_yaml",
-    srcs = ["gcloud.yaml.tpl"],
-    outs = ["gcloud.yaml"],
-    cmd = "sed 's|{_GCLOUD_VERSION}|" + GCLOUD_VERSION.rpartition("-")[0] + "|' <$< >$@",
-)
diff --git a/container/common/gcloud/gcloud.yaml.tpl b/container/common/gcloud/gcloud.yaml.tpl
deleted file mode 100644
index d1bf41f..0000000
--- a/container/common/gcloud/gcloud.yaml.tpl
+++ /dev/null
@@ -1,7 +0,0 @@
-schemaVersion: "2.0.0"
-
-commandTests:
-- name: 'check-gcloud'
-  command: 'gcloud'
-  args: ['version']
-  expectedOutput: ['Google Cloud SDK {_GCLOUD_VERSION}.*']
diff --git a/container/common/gcloud/version.bzl b/container/common/gcloud/version.bzl
deleted file mode 100644
index 5a58da2..0000000
--- a/container/common/gcloud/version.bzl
+++ /dev/null
@@ -1 +0,0 @@
-GCLOUD_VERSION = "210.0.0-0"
diff --git a/container/common/go.yaml.tpl b/container/common/go.yaml.tpl
deleted file mode 100644
index f51e964..0000000
--- a/container/common/go.yaml.tpl
+++ /dev/null
@@ -1,17 +0,0 @@
-schemaVersion: "2.0.0"
-
-commandTests:
-- name: 'go-version'
-  command: 'go'
-  args: ['version']
-  expectedOutput: ['go version go{_GOLANG_REVISION} linux/amd64']
-
-fileExistenceTests:
-- name: 'Golang'
-  path: '/usr/local/go/bin/go'
-  shouldExist: true
-
-metadataTest:
-  env:
-    - key: 'GOPATH'
-      value: '/go'
diff --git a/container/common/java.yaml.tpl b/container/common/java.yaml.tpl
deleted file mode 100644
index cfff8b6..0000000
--- a/container/common/java.yaml.tpl
+++ /dev/null
@@ -1,33 +0,0 @@
-schemaVersion: "2.0.0"
-
-commandTests:
-- name: 'java-version'
-  command: 'java'
-  args: ['-version']
-  # java outputs to stderr.
-  expectedError: ["openjdk version \"1.8.*"]
-- name: 'java10-version'
-  command: '/usr/lib/jvm/zulu{_JDK_VERSION_DECODED}-linux_x64-allmodules/bin/java'
-  args: ['-version']
-  # java outputs to stderr.
-  expectedError: ["openjdk version \"10.*"]
-- name: 'check-openssl'
-  command: 'openssl'
-  args: ['version']
-  expectedOutput: ['OpenSSL .*']
-
-fileExistenceTests:
-- name: 'OpenJDK'
-  path: '/usr/lib/jvm/java-8-openjdk-amd64'
-  shouldExist: true
-- name: 'OpenJDK 10'
-  path: '/usr/lib/jvm/zulu{_JDK_VERSION_DECODED}-linux_x64-allmodules'
-  shouldExist: true
-- name: 'OpenJDK 10 srcs'
-  path: '/usr/src/jdk/zsrc{_JDK_VERSION}.zip'
-  shouldExist: true
-
-metadataTest:
-  env:
-    - key: 'JAVA_HOME'
-      value: '/usr/lib/jvm/java-8-openjdk-amd64'
diff --git a/container/common/python2.yaml b/container/common/python2.yaml
deleted file mode 100644
index 8582e44..0000000
--- a/container/common/python2.yaml
+++ /dev/null
@@ -1,13 +0,0 @@
-schemaVersion: "2.0.0"
-
-commandTests:
-- name: 'python2-version'
-  command: 'python'
-  args: ['-V']
-  # python outputs to stderr.
-  expectedError: ['Python 2.7.*']
-
-fileExistenceTests:
-- name: 'Python2'
-  path: '/usr/bin/python2.7'
-  shouldExist: true
diff --git a/container/common/python3.yaml b/container/common/python3.yaml
deleted file mode 100644
index 1c0dbd4..0000000
--- a/container/common/python3.yaml
+++ /dev/null
@@ -1,22 +0,0 @@
-schemaVersion: "2.0.0"
-
-fileExistenceTests:
-- name: 'python3'
-  path: '/usr/bin/python3'
-  shouldExist: true
-- name: 'pycache3.5'
-  path: '/usr/lib/python3.5/__pycache__'
-  shouldExist: false
-- name: 'pycache3.5-test'
-  path: '/usr/lib/python3.5/test/__pycache__'
-  shouldExist: false
-
-commandTests:
-- name: 'python3-version'
-  command: 'python3'
-  args: ['-V']
-  expectedOutput: ['Python 3.*.*']
-- name: 'apt-add-repo-check'
-  command: 'apt-add-repository'
-  args: ['-h']
-  expectedOutput: ['Usage: apt-add-repository']
diff --git a/container/common/python3_rbe.yaml b/container/common/python3_rbe.yaml
deleted file mode 100644
index f0877fc..0000000
--- a/container/common/python3_rbe.yaml
+++ /dev/null
@@ -1,18 +0,0 @@
-schemaVersion: "2.0.0"
-
-fileExistenceTests:
-- name: 'python3'
-  path: '/opt/python3.6/bin/python3'
-  shouldExist: true
-- name: 'pycache3.5'
-  path: '/usr/lib/python3.5/__pycache__'
-  shouldExist: false
-- name: 'pycache3.5-test'
-  path: '/usr/lib/python3.5/test/__pycache__'
-  shouldExist: false
-
-commandTests:
-- name: 'python3-version'
-  command: 'python3'
-  args: ['-V']
-  expectedOutput: ['Python 3.6.*']
diff --git a/container/common/rbe-base.yaml b/container/common/rbe-base.yaml
deleted file mode 100644
index e63d44b..0000000
--- a/container/common/rbe-base.yaml
+++ /dev/null
@@ -1,55 +0,0 @@
-schemaVersion: "2.0.0"
-
-commandTests:
-# 'check-ar' is used to test binutils.
-- name: 'check-ar'
-  command: 'ar'
-  args: ['--version']
-  expectedOutput: ['GNU ar .*']
-- name: 'check-curl'
-  command: 'curl'
-  args: ['--version']
-  expectedOutput: ['curl .* \(x86_64-pc-linux-gnu\).*']
-- name: 'check-ed'
-  command: 'ed'
-  args: ['--version']
-  expectedOutput: ['GNU [eE]d .*']
-- name: 'check-file'
-  command: 'file'
-  args: ['--version']
-  expectedOutput: ['file-.*']
-- name: 'check-git'
-  command: 'git'
-  args: ['--version']
-  expectedOutput: ['git version .*']
-- name: 'check-less'
-  command: 'less'
-  args: ['--version']
-  expectedOutput: ['less .*']
-- name: 'check-netcat'
-  command: 'nc'
-  args: ['-h']
-  # nc outputs to stderr.
-  expectedError: ['\[v.*']
-- name: 'check-patch'
-  command: 'patch'
-  args: ['--version']
-  expectedOutput: ['GNU patch .*']
-- name: 'check-wget'
-  command: 'wget'
-  args: ['--version']
-  expectedOutput: ['GNU Wget.* built on linux-gnu.*']
-- name: 'check-zip'
-  command: 'zip'
-  args: ['--version']
-  expectedOutput: ['.*This is Zip.*']
-
-fileExistenceTests:
-- name: 'Root'
-  path: '/'
-  shouldExist: true
-
-metadataTest:
-  env:
-    - key: 'LC_ALL'
-      value: 'C.UTF-8'
diff --git a/container/debian8/BUILD b/container/debian8/BUILD
deleted file mode 100644
index 8ece167..0000000
--- a/container/debian8/BUILD
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
-
-exports_files(glob(["*.yaml"]))
diff --git a/container/debian8/builders/bazel/BUILD b/container/debian8/builders/bazel/BUILD
deleted file mode 100644
index b9c7c93..0000000
--- a/container/debian8/builders/bazel/BUILD
+++ /dev/null
@@ -1,90 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
-
-load(
-    "//rules/container:docker_toolchains.bzl",
-    "language_tool_layer",
-    "toolchain_container",
-)
-load("@io_bazel_rules_docker//container:container.bzl", "container_image")
-load("@io_bazel_rules_docker//contrib:test.bzl", "container_test")
-load("//container/common/bazel:version.bzl", "BAZEL_VERSION_SHA256S")
-
-# Tools that are needed in most builds, but not strictly required by bazel.
-language_tool_layer(
-    name = "extra-tools-ltl",
-    base = "@debian8//image",
-    packages = [
-        "git",
-        "wget",
-    ],
-)
-
-# Generate the Bazel container for all supported versions using the
-# corresponding Bazel language_tool_layer targets.
-[toolchain_container(
-    name = "bazel_%s_intermediate" % bazel_version,
-    base = "@debian8//image",
-    # TODO(xingao) Fix this. We should not remove /etc/ssl/certs/java/cacerts
-    # file in the java-ltl, but instead, archive it for future container
-    # reproduction.
-    installation_cleanup_commands = "update-ca-certificates -f",
-    language_layers = [
-        ":extra-tools-ltl",
-        "//container/debian8/layers/clang:clang-ltl",
-        "//container/debian8/layers/java:java-ltl",
-        "//container/debian8/layers/java:java10-ltl",
-        "//container/debian8/layers/python:python-ltl",
-        "//container/debian8/layers/bazel:bazel-tools",
-        "//container/debian8/layers/bazel:bazel_%s-ltl" % bazel_version,
-        "//container/debian8/layers/docker-17.12.0:docker-ltl",
-        "//container/debian8/layers/gcloud:gcloud-ltl",
-    ],
-) for bazel_version, _ in BAZEL_VERSION_SHA256S.items()]
-
-# Set up `entrypoint` and cmd in the container. These cannot be down in the
-# `toolchain_container` rule as they would be consumed by intermediate
-# `container_image` rule in its implementation.
-# TODO(xingao): enable setting things like `entrypoint` and `cmd` in
-# `toolchain_container`.
-[container_image(
-    name = "bazel_%s" % bazel_version,
-    base = ":bazel_%s_intermediate" % bazel_version,
-    cmd = None,
-    entrypoint = ["/usr/local/bin/bazel"],
-) for bazel_version, _ in BAZEL_VERSION_SHA256S.items()]
-
-# container_test targets for all supported Bazel versions.
-[container_test(
-    name = "bazel_%s-test" % bazel_version,
-    configs = [
-        ":container.yaml",
-        "//container/common:docker-17.12.0.yaml",
-        "//container/common:java.yaml",
-        "//container/common:python2.yaml",
-        "//container/common:python3.yaml",
-        "//container/common/clang:clang.yaml",
-        "//container/common/gcloud:gcloud.yaml",
-        "//container/common/bazel:bazel_%s.yaml" % bazel_version,
-        "//container/common/bazel:bazel_tools.yaml",
-        "//container/common/bazel:extra_tools.yaml",
-        "//container/debian8:debian8.yaml",
-    ],
-    image = ":bazel_%s" % bazel_version,
-    verbose = True,
-) for bazel_version, _ in BAZEL_VERSION_SHA256S.items()]
diff --git a/container/debian8/builders/bazel/container.yaml b/container/debian8/builders/bazel/container.yaml
deleted file mode 100644
index 2f67509..0000000
--- a/container/debian8/builders/bazel/container.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-schemaVersion: "2.0.0"
-
-metadataTest:
-  env:
-    - key: 'PATH'
-      value: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
-  entrypoint: ["/usr/local/bin/bazel"]
-  cmd: []
diff --git a/container/debian8/builders/rbe-debian8/BUILD b/container/debian8/builders/rbe-debian8/BUILD
deleted file mode 100644
index 9a6b0ed..0000000
--- a/container/debian8/builders/rbe-debian8/BUILD
+++ /dev/null
@@ -1,86 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
-
-load(
-    "//rules/container:docker_toolchains.bzl",
-    "language_tool_layer",
-    "toolchain_container",
-)
-load("@io_bazel_rules_docker//contrib:test.bzl", "container_test")
-
-language_tool_layer(
-    name = "base-ltl",
-    base = "@debian8//image",
-    packages = [
-        "binutils",
-        "ca-certificates",
-        "curl",
-        "ed",
-        "file",
-        "git",
-        "less",
-        "netcat",
-        "openssh-client",
-        "patch",
-        "unzip",
-        "wget",
-        "zip",
-    ],
-)
-
-toolchain_container(
-    name = "toolchain",
-    base = "@debian8//image",
-    cmd = [
-        "/bin/sh",
-        "-c",
-        "/bin/bash",
-    ],
-    env = {
-        # PATH envvar is a special case, and currently only the one in the
-        # topmost layer is set. So that we override it here to include all.
-        "PATH": "$PATH:/opt/python3.6/bin:/usr/local/go/bin",
-        "LANG": "C.UTF-8",
-        "LANGUAGE": "C.UTF-8",
-        "LC_ALL": "C.UTF-8",
-    },
-    language_layers = [
-        "base-ltl",
-        "//container/debian8/layers/clang:clang-ltl",
-        "//container/debian8/layers/go:go-ltl",
-        "//container/debian8/layers/java:java-ltl",
-        "//container/debian8/layers/java:java10-ltl",
-        "//container/debian8/layers/python:python-rbe-ltl",
-    ],
-)
-
-container_test(
-    name = "toolchain-test",
-    configs = [
-        ":rbe-debian8.yaml",
-        "//container/common:go.yaml",
-        "//container/common:java.yaml",
-        "//container/common:python2.yaml",
-        "//container/common:python3_rbe.yaml",
-        "//container/common:rbe-base.yaml",
-        "//container/common/clang:clang.yaml",
-        "//container/debian8:debian8.yaml",
-    ],
-    image = ":toolchain",
-    verbose = True,
-)
diff --git a/container/debian8/builders/rbe-debian8/rbe-debian8.yaml b/container/debian8/builders/rbe-debian8/rbe-debian8.yaml
deleted file mode 100644
index 9e9547c..0000000
--- a/container/debian8/builders/rbe-debian8/rbe-debian8.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-schemaVersion: "2.0.0"
-
-metadataTest:
-  env:
-    - key: 'PATH'
-      value: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/python3.6/bin:/usr/local/go/bin'
diff --git a/container/debian8/debian8.yaml b/container/debian8/debian8.yaml
deleted file mode 100644
index 219d20b..0000000
--- a/container/debian8/debian8.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
-schemaVersion: "2.0.0"
-
-# Distro-specific tests
-fileContentTests:
-- name: 'os-version'
-  expectedContents: ['Debian GNU/Linux 8']
-  path: '/etc/issue.net'
diff --git a/container/debian8/layers/bazel/BUILD b/container/debian8/layers/bazel/BUILD
deleted file mode 100644
index 67478ff..0000000
--- a/container/debian8/layers/bazel/BUILD
+++ /dev/null
@@ -1,69 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
-
-load("//rules/container:docker_toolchains.bzl", "language_tool_layer")
-load("//rules/container:docker_toolchains.bzl", "toolchain_container")
-load("@base_images_docker//util:run.bzl", "container_run_and_extract")
-load("//container/common/bazel:version.bzl", "BAZEL_VERSION_SHA256S")
-
-# Tools required by Bazel. Note that we do not add a CC complier here as we
-# will include that in the final container.
-language_tool_layer(
-    name = "bazel-tools",
-    base = "@debian8//image",
-    packages = [
-        "bash-completion",
-        "binutils",
-        "patch",
-        "unzip",
-        "zip",
-    ],
-)
-
-# Create image with Bazel installer for all supported versions.
-[toolchain_container(
-    name = "bazel_%s_installer_image" % bazel_version,
-    base = "@debian8//image",
-    files = [
-        "@bazel_%s_installer//file" % bazel_version.replace(".", ""),
-        "//container/common/bazel:bazel.bazelrc",
-    ],
-    packages = [
-        "unzip",
-    ],
-) for bazel_version, _ in BAZEL_VERSION_SHA256S.items()]
-
-# Extract Bazel binaries for all supported versions.
-[container_run_and_extract(
-    name = "bazel_%s_tar" % bazel_version,
-    commands = [
-        "mv /bazel.bazelrc /etc/bazel.bazelrc",
-        "chmod +x /bazel-%s-installer-linux-x86_64.sh" % bazel_version,
-        "/bazel-%s-installer-linux-x86_64.sh" % bazel_version,
-        "tar cvf /bazel.tar --mtime='1970-01-01' /usr/local/bin/bazel /usr/local/lib/bazel/* /etc/bazel.bazelrc",
-    ],
-    extract_file = "/bazel.tar",
-    image = ":bazel_%s_installer_image.tar" % bazel_version,
-) for bazel_version, _ in BAZEL_VERSION_SHA256S.items()]
-
-# Language_tool_layer targets for all supported Bazel versions.
-[language_tool_layer(
-    name = "bazel_%s-ltl" % bazel_version,
-    base = "@debian8//image",
-    tars = [":bazel_%s_tar/bazel.tar" % bazel_version],
-) for bazel_version, _ in BAZEL_VERSION_SHA256S.items()]
diff --git a/container/debian8/layers/clang/BUILD b/container/debian8/layers/clang/BUILD
deleted file mode 100644
index 3e0a248..0000000
--- a/container/debian8/layers/clang/BUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
-
-load(
-    "//rules/container:docker_toolchains.bzl",
-    "language_tool_layer",
-)
-load("//container/common/clang:clang.bzl", "clang_env")
-
-language_tool_layer(
-    name = "clang-ltl",
-    base = "@debian8//image",
-    env = clang_env,
-    packages = [
-        "libstdc++-4.9-dev",
-    ],
-    tars = [
-        "//third_party/clang:debian8_tar",
-        "//third_party/libcxx:debian8_tar",
-    ],
-)
diff --git a/container/debian8/layers/docker-17.12.0/BUILD b/container/debian8/layers/docker-17.12.0/BUILD
deleted file mode 100644
index 970991b..0000000
--- a/container/debian8/layers/docker-17.12.0/BUILD
+++ /dev/null
@@ -1,59 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
-
-load("//rules/container:docker_toolchains.bzl", "language_tool_layer", "toolchain_container")
-load("@base_images_docker//package_managers:apt_key.bzl", "add_apt_key")
-load("@base_images_docker//package_managers:download_pkgs.bzl", "download_pkgs")
-
-# Downloading "docker-ce" requires "apt-transport-https" to be installed
-# in the container. So create a prerequisite container first.
-toolchain_container(
-    name = "docker-prereq",
-    base = "@debian8//image",
-    packages = [
-        "apt-transport-https",
-    ],
-)
-
-add_apt_key(
-    name = "docker-key-image",
-    image = ":docker-prereq.tar",
-    keys = [
-        "@docker_gpg//file",
-    ],
-)
-
-download_pkgs(
-    name = "docker-packages",
-    additional_repos = [
-        "deb [arch=amd64] https://download.docker.com/linux/debian jessie stable edge",
-    ],
-    image_tar = ":docker-key-image.tar",
-    packages = [
-        "apt-transport-https",
-        "ca-certificates",
-        "curl",
-        "docker-ce=17.12.0~ce-0~debian",
-    ],
-)
-
-language_tool_layer(
-    name = "docker-ltl",
-    base = "@debian8//image",
-    installables_tar = ":docker-packages.tar",
-)
diff --git a/container/debian8/layers/gcloud/BUILD b/container/debian8/layers/gcloud/BUILD
deleted file mode 100644
index 5f90fb8..0000000
--- a/container/debian8/layers/gcloud/BUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
-
-load("//rules/container:docker_toolchains.bzl", "language_tool_layer")
-load(
-    "//container/common/gcloud:version.bzl",
-    "GCLOUD_VERSION",
-)
-
-language_tool_layer(
-    name = "gcloud-ltl",
-    additional_repos = [
-        "deb http://packages.cloud.google.com/apt cloud-sdk-jessie main",
-    ],
-    base = "@debian8//image",
-    keys = [
-        "@gcloud_gpg//file",
-    ],
-    packages = [
-        "google-cloud-sdk=%s" % GCLOUD_VERSION,
-    ],
-)
diff --git a/container/debian8/layers/go/BUILD b/container/debian8/layers/go/BUILD
deleted file mode 100644
index 9289e55..0000000
--- a/container/debian8/layers/go/BUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
-
-load(
-    "//rules/container:docker_toolchains.bzl",
-    "language_tool_layer",
-)
-
-language_tool_layer(
-    name = "go-ltl",
-    base = "@debian8//image",
-    env = {
-        "GOPATH": "/go",
-        "PATH": "$PATH:/usr/local/go/bin",
-    },
-    tars = ["//third_party/golang:tar"],
-)
diff --git a/container/debian8/layers/java/BUILD b/container/debian8/layers/java/BUILD
deleted file mode 100644
index dd5d98d..0000000
--- a/container/debian8/layers/java/BUILD
+++ /dev/null
@@ -1,58 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
-
-load(
-    "//rules/container:docker_toolchains.bzl",
-    "language_tool_layer",
-)
-
-JAVA_CLEANUP_COMMANDS = (
-    "rm -rf " +
-    "/etc/ssl/certs/java/cacerts " +
-    "/tmp/hsperfdata_root/* " +
-    "/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/classes.jsa"
-)
-
-language_tool_layer(
-    name = "java-ltl",
-    additional_repos = [
-        "deb http://deb.debian.org/debian jessie-backports main",
-    ],
-    base = "@debian8//image",
-    env = {
-        "JAVA_HOME": "/usr/lib/jvm/java-8-openjdk-amd64",
-    },
-    installation_cleanup_commands = JAVA_CLEANUP_COMMANDS,
-    packages = [
-        "ca-certificates-java=20161107'*'",
-        "openjdk-8-jdk-headless",
-        "openjdk-8-jre-headless",
-    ],
-    symlinks = {
-        "/usr/bin/java": "/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java",
-    },
-)
-
-language_tool_layer(
-    name = "java10-ltl",
-    base = "@debian8//image",
-    tars = [
-        "//third_party/openjdk:open_jdk_tar",
-        "//third_party/openjdk:open_jdk_src_tar",
-    ],
-)
diff --git a/container/debian8/layers/python/BUILD b/container/debian8/layers/python/BUILD
deleted file mode 100644
index 9b72f44..0000000
--- a/container/debian8/layers/python/BUILD
+++ /dev/null
@@ -1,63 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
-
-load(
-    "//rules/container:docker_toolchains.bzl",
-    "language_tool_layer",
-)
-
-PYTHON_CLEANUP_COMMANDS = (
-    "find /usr/lib/python* -name __pycache__ -exec rm -rf {} +"
-)
-
-language_tool_layer(
-    name = "python-rbe-ltl",
-    base = "@debian8//image",
-    env = {
-        "PATH": "$PATH:/opt/python3.6/bin",
-    },
-    installation_cleanup_commands = PYTHON_CLEANUP_COMMANDS,
-    packages = [
-        "python-dev",
-        "python-setuptools",
-        "python3-dev",
-    ],
-    symlinks = {
-        "/usr/bin/python": "/usr/bin/python2.7",
-        "/usr/bin/python3": "/opt/python3.6/bin/python3.6",
-        "/opt/python3.6/bin/python3": "/opt/python3.6/bin/python3.6",
-        "/opt/python3.6/bin/pip3": "/opt/python3.6/bin/pip3.6",
-        "/opt/python3.6/bin/easy_install3": "/opt/python3.6/bin/easy_install-3.6",
-    },
-    tars = ["//third_party/python:debian8_tar/python.tar"],
-)
-
-language_tool_layer(
-    name = "python-ltl",
-    base = "@debian8//image",
-    installation_cleanup_commands = PYTHON_CLEANUP_COMMANDS,
-    packages = [
-        "python-dev",
-        "python-setuptools",
-        "python3-dev",
-        "software-properties-common",
-    ],
-    symlinks = {
-        "/usr/bin/python": "/usr/bin/python2.7",
-    },
-)
diff --git a/container/ubuntu14_04/BUILD b/container/ubuntu14_04/BUILD
deleted file mode 100644
index 8ece167..0000000
--- a/container/ubuntu14_04/BUILD
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
-
-exports_files(glob(["*.yaml"]))
diff --git a/container/ubuntu14_04/builders/bazel/BUILD b/container/ubuntu14_04/builders/bazel/BUILD
deleted file mode 100644
index 30ca678..0000000
--- a/container/ubuntu14_04/builders/bazel/BUILD
+++ /dev/null
@@ -1,90 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
-
-load(
-    "//rules/container:docker_toolchains.bzl",
-    "language_tool_layer",
-    "toolchain_container",
-)
-load("@io_bazel_rules_docker//container:container.bzl", "container_image")
-load("@io_bazel_rules_docker//contrib:test.bzl", "container_test")
-load("//container/common/bazel:version.bzl", "BAZEL_VERSION_SHA256S")
-
-# Tools that are needed in most builds, but not strictly required by bazel.
-language_tool_layer(
-    name = "extra-tools-ltl",
-    base = "@trusty//image",
-    packages = [
-        "git",
-        "wget",
-    ],
-)
-
-# Generate the Bazel container for all supported versions using the
-# corresponding Bazel language_tool_layer targets.
-[toolchain_container(
-    name = "bazel_%s_intermediate" % bazel_version,
-    base = "@trusty//image",
-    # TODO(xingao) Fix this. We should not remove /etc/ssl/certs/java/cacerts
-    # file in the java-ltl, but instead, archive it for future container
-    # reproduction.
-    installation_cleanup_commands = "update-ca-certificates -f",
-    language_layers = [
-        ":extra-tools-ltl",
-        "//container/ubuntu14_04/layers/gcc:gcc-ltl",
-        "//container/ubuntu14_04/layers/java:java-ltl",
-        "//container/ubuntu14_04/layers/java:java10-ltl",
-        "//container/ubuntu14_04/layers/python:python-ltl",
-        "//container/ubuntu14_04/layers/bazel:bazel-tools",
-        "//container/ubuntu14_04/layers/bazel:bazel_%s-ltl" % bazel_version,
-        "//container/ubuntu14_04/layers/docker-17.12.0:docker-ltl",
-        "//container/ubuntu14_04/layers/gcloud:gcloud-ltl",
-    ],
-) for bazel_version, _ in BAZEL_VERSION_SHA256S.items()]
-
-# Set up `entrypoint` and cmd in the container. These cannot be down in the
-# `toolchain_container` rule as they would be consumed by intermediate
-# `container_image` rule in its implementation.
-# TODO(xingao): enable setting things like `entrypoint` and `cmd` in
-# `toolchain_container`.
-[container_image(
-    name = "bazel_%s" % bazel_version,
-    base = ":bazel_%s_intermediate" % bazel_version,
-    cmd = None,
-    entrypoint = ["/usr/local/bin/bazel"],
-) for bazel_version, _ in BAZEL_VERSION_SHA256S.items()]
-
-# container_test targets for all supported Bazel versions.
-[container_test(
-    name = "bazel_%s-test" % bazel_version,
-    configs = [
-        ":container.yaml",
-        "//container/common:docker-17.12.0.yaml",
-        "//container/common:java.yaml",
-        "//container/common:python2.yaml",
-        "//container/common:python3.yaml",
-        "//container/common/gcloud:gcloud.yaml",
-        "//container/common/bazel:bazel_%s.yaml" % bazel_version,
-        "//container/common/bazel:bazel_tools.yaml",
-        "//container/common/bazel:extra_tools.yaml",
-        "//container/ubuntu14_04:ubuntu14_04.yaml",
-        "//container/ubuntu14_04/layers/gcc:gcc.yaml",
-    ],
-    image = ":bazel_%s" % bazel_version,
-    verbose = True,
-) for bazel_version, _ in BAZEL_VERSION_SHA256S.items()]
diff --git a/container/ubuntu14_04/builders/bazel/container.yaml b/container/ubuntu14_04/builders/bazel/container.yaml
deleted file mode 100644
index 2f67509..0000000
--- a/container/ubuntu14_04/builders/bazel/container.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-schemaVersion: "2.0.0"
-
-metadataTest:
-  env:
-    - key: 'PATH'
-      value: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
-  entrypoint: ["/usr/local/bin/bazel"]
-  cmd: []
diff --git a/container/ubuntu14_04/layers/bazel/BUILD b/container/ubuntu14_04/layers/bazel/BUILD
deleted file mode 100644
index 36bdac7..0000000
--- a/container/ubuntu14_04/layers/bazel/BUILD
+++ /dev/null
@@ -1,69 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
-
-load("//rules/container:docker_toolchains.bzl", "language_tool_layer")
-load("//rules/container:docker_toolchains.bzl", "toolchain_container")
-load("@base_images_docker//util:run.bzl", "container_run_and_extract")
-load("//container/common/bazel:version.bzl", "BAZEL_VERSION_SHA256S")
-
-# Tools required by Bazel. Note that we do not add a CC complier here as we
-# will include that in the final container.
-language_tool_layer(
-    name = "bazel-tools",
-    base = "@trusty//image",
-    packages = [
-        "bash-completion",
-        "binutils",
-        "patch",
-        "unzip",
-        "zip",
-    ],
-)
-
-# Create image with Bazel installer for all supported versions.
-[toolchain_container(
-    name = "bazel_%s_installer_image" % bazel_version,
-    base = "@trusty//image",
-    files = [
-        "@bazel_%s_installer//file" % bazel_version.replace(".", ""),
-        "//container/common/bazel:bazel.bazelrc",
-    ],
-    packages = [
-        "unzip",
-    ],
-) for bazel_version, _ in BAZEL_VERSION_SHA256S.items()]
-
-# Extract Bazel binaries for all supported versions.
-[container_run_and_extract(
-    name = "bazel_%s_tar" % bazel_version,
-    commands = [
-        "mv /bazel.bazelrc /etc/bazel.bazelrc",
-        "chmod +x /bazel-%s-installer-linux-x86_64.sh" % bazel_version,
-        "/bazel-%s-installer-linux-x86_64.sh" % bazel_version,
-        "tar cvf /bazel.tar --mtime='1970-01-01' /usr/local/bin/bazel /usr/local/lib/bazel/* /etc/bazel.bazelrc",
-    ],
-    extract_file = "/bazel.tar",
-    image = ":bazel_%s_installer_image.tar" % bazel_version,
-) for bazel_version, _ in BAZEL_VERSION_SHA256S.items()]
-
-# Language_tool_layer targets for all supported Bazel versions.
-[language_tool_layer(
-    name = "bazel_%s-ltl" % bazel_version,
-    base = "@trusty//image",
-    tars = [":bazel_%s_tar/bazel.tar" % bazel_version],
-) for bazel_version, _ in BAZEL_VERSION_SHA256S.items()]
diff --git a/container/ubuntu14_04/layers/docker-17.12.0/BUILD b/container/ubuntu14_04/layers/docker-17.12.0/BUILD
deleted file mode 100644
index c29b62e..0000000
--- a/container/ubuntu14_04/layers/docker-17.12.0/BUILD
+++ /dev/null
@@ -1,59 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
-
-load("//rules/container:docker_toolchains.bzl", "language_tool_layer", "toolchain_container")
-load("@base_images_docker//package_managers:apt_key.bzl", "add_apt_key")
-load("@base_images_docker//package_managers:download_pkgs.bzl", "download_pkgs")
-
-# Downloading "docker-ce" requires "apt-transport-https" to be installed
-# in the container. So create a prerequisite container first.
-toolchain_container(
-    name = "docker-prereq",
-    base = "@trusty//image",
-    packages = [
-        "apt-transport-https",
-        "ca-certificates",
-        "curl",
-    ],
-)
-
-add_apt_key(
-    name = "docker-key-image",
-    image = ":docker-prereq.tar",
-    keys = [
-        "@docker_gpg//file",
-    ],
-)
-
-download_pkgs(
-    name = "docker-packages",
-    additional_repos = [
-        "deb [arch=amd64] https://download.docker.com/linux/ubuntu trusty stable",
-    ],
-    image_tar = ":docker-key-image.tar",
-    packages = [
-        "docker-ce=17.12.0~ce-0~ubuntu",
-        "linux-image-extra-virtual",
-    ],
-)
-
-language_tool_layer(
-    name = "docker-ltl",
-    base = "@trusty//image",
-    installables_tar = ":docker-packages.tar",
-)
diff --git a/container/ubuntu14_04/layers/gcc/BUILD b/container/ubuntu14_04/layers/gcc/BUILD
deleted file mode 100644
index 642059b..0000000
--- a/container/ubuntu14_04/layers/gcc/BUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
-
-load(
-    "//rules/container:docker_toolchains.bzl",
-    "language_tool_layer",
-)
-
-exports_files(glob(["*.yaml"]))
-
-language_tool_layer(
-    name = "gcc-ltl",
-    base = "@trusty//image",
-    packages = [
-        "g++",
-    ],
-)
diff --git a/container/ubuntu14_04/layers/gcc/gcc.yaml b/container/ubuntu14_04/layers/gcc/gcc.yaml
deleted file mode 100644
index d8e02a0..0000000
--- a/container/ubuntu14_04/layers/gcc/gcc.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-schemaVersion: "2.0.0"
-
-commandTests:
-- name: 'check-g++'
-  command: 'g++'
-  args: ['--version']
-  expectedOutput: ['g[+][+] [(]Ubuntu .*']
-- name: 'check-gcov'
-  command: 'gcov'
-  args: ['--version']
-  expectedOutput: ['gcov [(]Ubuntu .*']
diff --git a/container/ubuntu14_04/layers/gcloud/BUILD b/container/ubuntu14_04/layers/gcloud/BUILD
deleted file mode 100644
index 855e7fa..0000000
--- a/container/ubuntu14_04/layers/gcloud/BUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
-
-load("//rules/container:docker_toolchains.bzl", "language_tool_layer")
-load(
-    "//container/common/gcloud:version.bzl",
-    "GCLOUD_VERSION",
-)
-
-language_tool_layer(
-    name = "gcloud-ltl",
-    additional_repos = [
-        "deb http://packages.cloud.google.com/apt cloud-sdk-trusty main",
-    ],
-    base = "@trusty//image",
-    keys = [
-        "@gcloud_gpg//file",
-    ],
-    packages = [
-        "google-cloud-sdk=%s" % GCLOUD_VERSION,
-    ],
-)
diff --git a/container/ubuntu14_04/layers/java/BUILD b/container/ubuntu14_04/layers/java/BUILD
deleted file mode 100644
index 5bbda68..0000000
--- a/container/ubuntu14_04/layers/java/BUILD
+++ /dev/null
@@ -1,61 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
-
-load(
-    "//rules/container:docker_toolchains.bzl",
-    "language_tool_layer",
-)
-
-JAVA_CLEANUP_COMMANDS = (
-    "rm -rf " +
-    "/etc/ssl/certs/java/cacerts " +
-    "/tmp/hsperfdata_root/* " +
-    "/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/classes.jsa"
-)
-
-language_tool_layer(
-    name = "java-ltl",
-    additional_repos = [
-        "deb [arch=amd64] http://ppa.launchpad.net/openjdk-r/ppa/ubuntu/ trusty main",
-    ],
-    base = "@trusty//image",
-    env = {
-        "JAVA_HOME": "/usr/lib/jvm/java-8-openjdk-amd64",
-    },
-    installation_cleanup_commands = JAVA_CLEANUP_COMMANDS,
-    keys = [
-        "@launchpad_openjdk_gpg//file",
-    ],
-    packages = [
-        "ca-certificates-java",
-        "openjdk-8-jdk-headless",
-        "openjdk-8-jre-headless",
-    ],
-    symlinks = {
-        "/usr/bin/java": "/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java",
-    },
-)
-
-language_tool_layer(
-    name = "java10-ltl",
-    base = "@trusty//image",
-    tars = [
-        "//third_party/openjdk:open_jdk_tar",
-        "//third_party/openjdk:open_jdk_src_tar",
-    ],
-)
diff --git a/container/ubuntu14_04/layers/python/BUILD b/container/ubuntu14_04/layers/python/BUILD
deleted file mode 100644
index fef564e..0000000
--- a/container/ubuntu14_04/layers/python/BUILD
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
-
-load(
-    "//rules/container:docker_toolchains.bzl",
-    "language_tool_layer",
-)
-
-PYTHON_CLEANUP_COMMANDS = (
-    "find /usr/lib/python* -name __pycache__ -exec rm -rf {} +"
-)
-
-language_tool_layer(
-    name = "python-ltl",
-    base = "@trusty//image",
-    installation_cleanup_commands = PYTHON_CLEANUP_COMMANDS,
-    packages = [
-        "python-dev",
-        "python-setuptools",
-        "python3-dev",
-        "software-properties-common",
-    ],
-    symlinks = {
-        "/usr/bin/python": "/usr/bin/python2.7",
-    },
-)
diff --git a/container/ubuntu14_04/ubuntu14_04.yaml b/container/ubuntu14_04/ubuntu14_04.yaml
deleted file mode 100644
index 9bbb8ca..0000000
--- a/container/ubuntu14_04/ubuntu14_04.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
-schemaVersion: "2.0.0"
-
-# Distro-specific tests
-fileContentTests:
-- name: 'os-version'
-  expectedContents: ['Ubuntu 14.04.* LTS']
-  path: '/etc/issue.net'
diff --git a/container/ubuntu16_04/BUILD b/container/ubuntu16_04/BUILD
deleted file mode 100644
index 8ece167..0000000
--- a/container/ubuntu16_04/BUILD
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
-
-exports_files(glob(["*.yaml"]))
diff --git a/container/ubuntu16_04/builders/bazel/BUILD b/container/ubuntu16_04/builders/bazel/BUILD
deleted file mode 100644
index 0a75eed..0000000
--- a/container/ubuntu16_04/builders/bazel/BUILD
+++ /dev/null
@@ -1,86 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
-
-load(
-    "//rules/container:docker_toolchains.bzl",
-    "language_tool_layer",
-    "toolchain_container",
-)
-load("@io_bazel_rules_docker//container:container.bzl", "container_image")
-load("@io_bazel_rules_docker//contrib:test.bzl", "container_test")
-load("//container/common/bazel:version.bzl", "BAZEL_VERSION_SHA256S")
-
-# Tools that are needed in most builds, but not strictly required by bazel.
-language_tool_layer(
-    name = "extra-tools-ltl",
-    base = "@ubuntu16_04//image",
-    packages = [
-        "git",
-        "wget",
-    ],
-)
-
-# Generate the Bazel container for all supported versions using the
-# corresponding Bazel language_tool_layer targets.
-[toolchain_container(
-    name = "bazel_%s_intermediate" % bazel_version,
-    base = "@ubuntu16_04//image",
-    # TODO(xingao) Fix this. We should not remove /etc/ssl/certs/java/cacerts
-    # file in the java-ltl, but instead, archive it for future container
-    # reproduction.
-    installation_cleanup_commands = "update-ca-certificates -f",
-    language_layers = [
-        ":extra-tools-ltl",
-        "//container/ubuntu16_04/layers/clang:clang-ltl",
-        "//container/ubuntu16_04/layers/java:java-ltl",
-        "//container/ubuntu16_04/layers/java:java10-ltl",
-        "//container/ubuntu16_04/layers/python:python-ltl",
-        "//container/ubuntu16_04/layers/bazel:bazel-tools",
-        "//container/ubuntu16_04/layers/bazel:bazel_%s-ltl" % bazel_version,
-    ],
-) for bazel_version, _ in BAZEL_VERSION_SHA256S.items()]
-
-# Set up `entrypoint` and cmd in the container. These cannot be down in the
-# `toolchain_container` rule as they would be consumed by intermediate
-# `container_image` rule in its implementation.
-# TODO(xingao): enable setting things like `entrypoint` and `cmd` in
-# `toolchain_container`.
-[container_image(
-    name = "bazel_%s" % bazel_version,
-    base = ":bazel_%s_intermediate" % bazel_version,
-    cmd = None,
-    entrypoint = ["/usr/local/bin/bazel"],
-) for bazel_version, _ in BAZEL_VERSION_SHA256S.items()]
-
-# container_test targets for all supported Bazel versions.
-[container_test(
-    name = "bazel_%s-test" % bazel_version,
-    configs = [
-        ":container.yaml",
-        "//container/common:java.yaml",
-        "//container/common:python2.yaml",
-        "//container/common:python3.yaml",
-        "//container/common/clang:clang.yaml",
-        "//container/common/bazel:bazel_%s.yaml" % bazel_version,
-        "//container/common/bazel:bazel_tools.yaml",
-        "//container/common/bazel:extra_tools.yaml",
-        "//container/ubuntu16_04:ubuntu16_04.yaml",
-    ],
-    image = ":bazel_%s" % bazel_version,
-    verbose = True,
-) for bazel_version, _ in BAZEL_VERSION_SHA256S.items()]
diff --git a/container/ubuntu16_04/builders/bazel/container.yaml b/container/ubuntu16_04/builders/bazel/container.yaml
deleted file mode 100644
index 2f67509..0000000
--- a/container/ubuntu16_04/builders/bazel/container.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-schemaVersion: "2.0.0"
-
-metadataTest:
-  env:
-    - key: 'PATH'
-      value: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
-  entrypoint: ["/usr/local/bin/bazel"]
-  cmd: []
diff --git a/container/ubuntu16_04/builders/bazel_docker_gcloud/BUILD b/container/ubuntu16_04/builders/bazel_docker_gcloud/BUILD
deleted file mode 100644
index 4bbe9a5..0000000
--- a/container/ubuntu16_04/builders/bazel_docker_gcloud/BUILD
+++ /dev/null
@@ -1,83 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
-
-load(
-    "//rules/container:docker_toolchains.bzl",
-    "language_tool_layer",
-    "toolchain_container",
-)
-load("@io_bazel_rules_docker//container:container.bzl", "container_image")
-load("@io_bazel_rules_docker//contrib:test.bzl", "container_test")
-load("//container/common/bazel:version.bzl", "BAZEL_VERSION_SHA256S")
-
-# Tools that are needed in most builds, but not strictly required by bazel.
-language_tool_layer(
-    name = "extra-tools-ltl",
-    base = "@ubuntu16_04//image",
-    packages = [
-        "git",
-        "wget",
-    ],
-)
-
-# Generate the container with Bazel and Docker for all supported versions of
-# Bazel.
-[toolchain_container(
-    name = "bazel_%s_docker_gcloud" % bazel_version,
-    base = "@ubuntu16_04//image",
-    cmd = [
-        "/bin/sh",
-        "-c",
-        "/bin/bash",
-    ],
-    # TODO(xingao) Fix this. We should not remove /etc/ssl/certs/java/cacerts
-    # file in the java-ltl, but instead, archive it for future container
-    # reproduction.
-    installation_cleanup_commands = "update-ca-certificates -f",
-    language_layers = [
-        ":extra-tools-ltl",
-        "//container/ubuntu16_04/layers/clang:clang-ltl",
-        "//container/ubuntu16_04/layers/java:java-ltl",
-        "//container/ubuntu16_04/layers/java:java10-ltl",
-        "//container/ubuntu16_04/layers/python:python-rbe-ltl",
-        "//container/ubuntu16_04/layers/bazel:bazel-tools",
-        "//container/ubuntu16_04/layers/bazel:bazel_%s-ltl" % bazel_version,
-        "//container/ubuntu16_04/layers/docker-17.12.0:docker-ltl",
-        "//container/ubuntu16_04/layers/gcloud:gcloud-ltl",
-    ],
-) for bazel_version, _ in BAZEL_VERSION_SHA256S.items()]
-
-# container_test targets for all supported bazel_docker containers..
-[container_test(
-    name = "bazel_%s_docker_gcloud-test" % bazel_version,
-    configs = [
-        ":container.yaml",
-        "//container/common:docker-17.12.0.yaml",
-        "//container/common:java.yaml",
-        "//container/common:python2.yaml",
-        "//container/common:python3_rbe.yaml",
-        "//container/common/clang:clang.yaml",
-        "//container/common/gcloud:gcloud.yaml",
-        "//container/common/bazel:bazel_%s.yaml" % bazel_version,
-        "//container/common/bazel:bazel_tools.yaml",
-        "//container/common/bazel:extra_tools.yaml",
-        "//container/ubuntu16_04:ubuntu16_04.yaml",
-    ],
-    image = ":bazel_%s_docker_gcloud" % bazel_version,
-    verbose = True,
-) for bazel_version, _ in BAZEL_VERSION_SHA256S.items()]
diff --git a/container/ubuntu16_04/builders/bazel_docker_gcloud/container.yaml b/container/ubuntu16_04/builders/bazel_docker_gcloud/container.yaml
deleted file mode 100644
index c27a43a..0000000
--- a/container/ubuntu16_04/builders/bazel_docker_gcloud/container.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-schemaVersion: "2.0.0"
-
-metadataTest:
-  env:
-    - key: 'PATH'
-      value: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/python3.6/bin'
diff --git a/container/ubuntu16_04/builders/rbe-ubuntu16_04/BUILD b/container/ubuntu16_04/builders/rbe-ubuntu16_04/BUILD
deleted file mode 100644
index fb797b4..0000000
--- a/container/ubuntu16_04/builders/rbe-ubuntu16_04/BUILD
+++ /dev/null
@@ -1,88 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
-
-load(
-    "//rules/container:docker_toolchains.bzl",
-    "language_tool_layer",
-    "toolchain_container",
-)
-load("@io_bazel_rules_docker//contrib:test.bzl", "container_test")
-
-language_tool_layer(
-    name = "base-ltl",
-    base = "@ubuntu16_04//image",
-    packages = [
-        "binutils",
-        "ca-certificates",
-        "curl",
-        "ed",
-        "file",
-        "git",
-        "less",
-        "locales",
-        "locales-all",
-        "netcat",
-        "openssh-client",
-        "patch",
-        "unzip",
-        "wget",
-        "zip",
-    ],
-)
-
-toolchain_container(
-    name = "toolchain",
-    base = "@ubuntu16_04//image",
-    cmd = [
-        "/bin/sh",
-        "-c",
-        "/bin/bash",
-    ],
-    env = {
-        # PATH envvar is a special case, and currently only the one in the
-        # topmost layer is set. So that we override it here to include all.
-        "PATH": "$PATH:/opt/python3.6/bin:/usr/local/go/bin",
-        "LANG": "C.UTF-8",
-        "LANGUAGE": "C.UTF-8",
-        "LC_ALL": "C.UTF-8",
-    },
-    language_layers = [
-        "base-ltl",
-        "//container/ubuntu16_04/layers/clang:clang-ltl",
-        "//container/ubuntu16_04/layers/go:go-ltl",
-        "//container/ubuntu16_04/layers/java:java-ltl",
-        "//container/ubuntu16_04/layers/java:java10-ltl",
-        "//container/ubuntu16_04/layers/python:python-rbe-ltl",
-    ],
-)
-
-container_test(
-    name = "toolchain-test",
-    configs = [
-        ":rbe-ubuntu16_04.yaml",
-        "//container/common:go.yaml",
-        "//container/common:java.yaml",
-        "//container/common:python2.yaml",
-        "//container/common:python3_rbe.yaml",
-        "//container/common:rbe-base.yaml",
-        "//container/common/clang:clang.yaml",
-        "//container/ubuntu16_04:ubuntu16_04.yaml",
-    ],
-    image = ":toolchain",
-    verbose = True,
-)
diff --git a/container/ubuntu16_04/builders/rbe-ubuntu16_04/rbe-ubuntu16_04.yaml b/container/ubuntu16_04/builders/rbe-ubuntu16_04/rbe-ubuntu16_04.yaml
deleted file mode 100644
index 9e9547c..0000000
--- a/container/ubuntu16_04/builders/rbe-ubuntu16_04/rbe-ubuntu16_04.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-schemaVersion: "2.0.0"
-
-metadataTest:
-  env:
-    - key: 'PATH'
-      value: '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/python3.6/bin:/usr/local/go/bin'
diff --git a/container/ubuntu16_04/debian_pkgs/BUILD b/container/ubuntu16_04/debian_pkgs/BUILD
deleted file mode 100644
index 30a6224..0000000
--- a/container/ubuntu16_04/debian_pkgs/BUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
-
-load(
-    "//rules/container:debian_pkg_tar.bzl",
-    "aggregate_debian_pkgs",
-)
-
-aggregate_debian_pkgs(
-    name = "ubuntu16-04-debian_pkgs",
-    base = "@ubuntu16_04//image",
-    language_layers = [
-        "//container/ubuntu16_04/builders/rbe-ubuntu16_04:base-ltl",
-        "//container/ubuntu16_04/layers/clang:clang-ltl",
-        "//container/ubuntu16_04/layers/go:go-ltl",
-        "//container/ubuntu16_04/layers/java:java-ltl",
-        "//container/ubuntu16_04/layers/java:java10-ltl",
-        "//container/ubuntu16_04/layers/python:python-ltl",
-    ],
-)
diff --git a/container/ubuntu16_04/layers/bazel/BUILD b/container/ubuntu16_04/layers/bazel/BUILD
deleted file mode 100644
index 600a792..0000000
--- a/container/ubuntu16_04/layers/bazel/BUILD
+++ /dev/null
@@ -1,68 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
-
-load("//rules/container:docker_toolchains.bzl", "language_tool_layer", "toolchain_container")
-load("@base_images_docker//util:run.bzl", "container_run_and_extract")
-load("//container/common/bazel:version.bzl", "BAZEL_VERSION_SHA256S")
-
-# Tools required by Bazel. Note that we do not add a CC complier here as we
-# will include that in the final container.
-language_tool_layer(
-    name = "bazel-tools",
-    base = "@ubuntu16_04//image",
-    packages = [
-        "bash-completion",
-        "binutils",
-        "patch",
-        "unzip",
-        "zip",
-    ],
-)
-
-# Create image with Bazel installer for all supported versions.
-[toolchain_container(
-    name = "bazel_%s_installer_image" % bazel_version,
-    base = "@ubuntu16_04//image",
-    files = [
-        "@bazel_%s_installer//file" % bazel_version.replace(".", ""),
-        "//container/common/bazel:bazel.bazelrc",
-    ],
-    packages = [
-        "unzip",
-    ],
-) for bazel_version, _ in BAZEL_VERSION_SHA256S.items()]
-
-# Extract Bazel binaries for all supported versions.
-[container_run_and_extract(
-    name = "bazel_%s_tar" % bazel_version,
-    commands = [
-        "mv /bazel.bazelrc /etc/bazel.bazelrc",
-        "chmod +x /bazel-%s-installer-linux-x86_64.sh" % bazel_version,
-        "/bazel-%s-installer-linux-x86_64.sh" % bazel_version,
-        "tar cvf /bazel.tar --mtime='1970-01-01' /usr/local/bin/bazel /usr/local/lib/bazel/* /etc/bazel.bazelrc",
-    ],
-    extract_file = "/bazel.tar",
-    image = ":bazel_%s_installer_image.tar" % bazel_version,
-) for bazel_version, _ in BAZEL_VERSION_SHA256S.items()]
-
-# Language_tool_layer targets for all supported Bazel versions.
-[language_tool_layer(
-    name = "bazel_%s-ltl" % bazel_version,
-    base = "@ubuntu16_04//image",
-    tars = [":bazel_%s_tar/bazel.tar" % bazel_version],
-) for bazel_version, _ in BAZEL_VERSION_SHA256S.items()]
diff --git a/container/ubuntu16_04/layers/clang/BUILD b/container/ubuntu16_04/layers/clang/BUILD
deleted file mode 100644
index d8aefa7..0000000
--- a/container/ubuntu16_04/layers/clang/BUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
-
-load(
-    "//rules/container:docker_toolchains.bzl",
-    "language_tool_layer",
-)
-load("//container/common/clang:clang.bzl", "clang_env")
-
-language_tool_layer(
-    name = "clang-ltl",
-    base = "@ubuntu16_04//image",
-    env = clang_env,
-    packages = [
-        "libstdc++-4.9-dev",
-    ],
-    tars = [
-        "//third_party/clang:ubuntu16_04_tar",
-        "//third_party/libcxx:ubuntu16_04_tar",
-    ],
-)
diff --git a/container/ubuntu16_04/layers/docker-17.12.0/BUILD b/container/ubuntu16_04/layers/docker-17.12.0/BUILD
deleted file mode 100644
index bb6b286..0000000
--- a/container/ubuntu16_04/layers/docker-17.12.0/BUILD
+++ /dev/null
@@ -1,60 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
-
-load("//rules/container:docker_toolchains.bzl", "language_tool_layer", "toolchain_container")
-load("@base_images_docker//package_managers:apt_key.bzl", "add_apt_key")
-load("@base_images_docker//package_managers:download_pkgs.bzl", "download_pkgs")
-
-# Downloading "docker-ce" requires "apt-transport-https" to be installed
-# in the container. So create a prerequisite container first.
-toolchain_container(
-    name = "docker-prereq",
-    base = "@ubuntu16_04//image",
-    packages = [
-        "apt-transport-https",
-    ],
-)
-
-add_apt_key(
-    name = "docker-key-image",
-    image = ":docker-prereq.tar",
-    keys = [
-        "@docker_gpg//file",
-    ],
-)
-
-download_pkgs(
-    name = "docker-packages",
-    additional_repos = [
-        "deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable edge",
-    ],
-    image_tar = ":docker-key-image.tar",
-    packages = [
-        "apt-transport-https",
-        "ca-certificates",
-        "curl",
-        "docker-ce=17.12.0~ce-0~ubuntu",
-        "linux-image-extra-virtual",
-    ],
-)
-
-language_tool_layer(
-    name = "docker-ltl",
-    base = "@ubuntu16_04//image",
-    installables_tar = ":docker-packages.tar",
-)
diff --git a/container/ubuntu16_04/layers/gcloud/BUILD b/container/ubuntu16_04/layers/gcloud/BUILD
deleted file mode 100644
index ae23e01..0000000
--- a/container/ubuntu16_04/layers/gcloud/BUILD
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
-
-load("//rules/container:docker_toolchains.bzl", "language_tool_layer")
-load(
-    "//container/common/gcloud:version.bzl",
-    "GCLOUD_VERSION",
-)
-
-language_tool_layer(
-    name = "gcloud-ltl",
-    additional_repos = [
-        "deb http://packages.cloud.google.com/apt cloud-sdk-xenial main",
-    ],
-    base = "@ubuntu16_04//image",
-    keys = [
-        "@gcloud_gpg//file",
-    ],
-    packages = [
-        "google-cloud-sdk=%s" % GCLOUD_VERSION,
-    ],
-)
diff --git a/container/ubuntu16_04/layers/go/BUILD b/container/ubuntu16_04/layers/go/BUILD
deleted file mode 100644
index 8a61de2..0000000
--- a/container/ubuntu16_04/layers/go/BUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
-
-load(
-    "//rules/container:docker_toolchains.bzl",
-    "language_tool_layer",
-)
-
-language_tool_layer(
-    name = "go-ltl",
-    base = "@ubuntu16_04//image",
-    env = {
-        "GOPATH": "/go",
-        "PATH": "$PATH:/usr/local/go/bin",
-    },
-    tars = ["//third_party/golang:tar"],
-)
diff --git a/container/ubuntu16_04/layers/java/BUILD b/container/ubuntu16_04/layers/java/BUILD
deleted file mode 100644
index 11b1a17..0000000
--- a/container/ubuntu16_04/layers/java/BUILD
+++ /dev/null
@@ -1,55 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
-
-load(
-    "//rules/container:docker_toolchains.bzl",
-    "language_tool_layer",
-)
-
-JAVA_CLEANUP_COMMANDS = (
-    "rm -rf " +
-    "/etc/ssl/certs/java/cacerts " +
-    "/tmp/hsperfdata_root/* " +
-    "/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/classes.jsa"
-)
-
-language_tool_layer(
-    name = "java-ltl",
-    base = "@ubuntu16_04//image",
-    env = {
-        "JAVA_HOME": "/usr/lib/jvm/java-8-openjdk-amd64",
-    },
-    installation_cleanup_commands = JAVA_CLEANUP_COMMANDS,
-    packages = [
-        "ca-certificates-java",
-        "openjdk-8-jdk-headless",
-        "openjdk-8-jre-headless",
-    ],
-    symlinks = {
-        "/usr/bin/java": "/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java",
-    },
-)
-
-language_tool_layer(
-    name = "java10-ltl",
-    base = "@ubuntu16_04//image",
-    tars = [
-        "//third_party/openjdk:open_jdk_tar",
-        "//third_party/openjdk:open_jdk_src_tar",
-    ],
-)
diff --git a/container/ubuntu16_04/layers/python/BUILD b/container/ubuntu16_04/layers/python/BUILD
deleted file mode 100644
index a015af9..0000000
--- a/container/ubuntu16_04/layers/python/BUILD
+++ /dev/null
@@ -1,63 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
-
-load(
-    "//rules/container:docker_toolchains.bzl",
-    "language_tool_layer",
-)
-
-PYTHON_CLEANUP_COMMANDS = (
-    "find /usr/lib/python* -name __pycache__ -exec rm -rf {} +"
-)
-
-language_tool_layer(
-    name = "python-rbe-ltl",
-    base = "@ubuntu16_04//image",
-    env = {
-        "PATH": "$PATH:/opt/python3.6/bin",
-    },
-    installation_cleanup_commands = PYTHON_CLEANUP_COMMANDS,
-    packages = [
-        "python-dev",
-        "python-setuptools",
-        "python3-dev",
-    ],
-    symlinks = {
-        "/usr/bin/python": "/usr/bin/python2.7",
-        "/usr/bin/python3": "/opt/python3.6/bin/python3.6",
-        "/opt/python3.6/bin/python3": "/opt/python3.6/bin/python3.6",
-        "/opt/python3.6/bin/pip3": "/opt/python3.6/bin/pip3.6",
-        "/opt/python3.6/bin/easy_install3": "/opt/python3.6/bin/easy_install-3.6",
-    },
-    tars = ["//third_party/python:ubuntu16_04_tar/python.tar"],
-)
-
-language_tool_layer(
-    name = "python-ltl",
-    base = "@ubuntu16_04//image",
-    installation_cleanup_commands = PYTHON_CLEANUP_COMMANDS,
-    packages = [
-        "python-dev",
-        "python-setuptools",
-        "python3-dev",
-        "software-properties-common",
-    ],
-    symlinks = {
-        "/usr/bin/python": "/usr/bin/python2.7",
-    },
-)
diff --git a/container/ubuntu16_04/ubuntu16_04.yaml b/container/ubuntu16_04/ubuntu16_04.yaml
deleted file mode 100644
index 2bbb04b..0000000
--- a/container/ubuntu16_04/ubuntu16_04.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
-schemaVersion: "2.0.0"
-
-# Distro-specific tests
-fileContentTests:
-- name: 'os-version'
-  expectedContents: ['Ubuntu 16.04.* LTS']
-  path: '/etc/issue.net'
diff --git a/repositories/images.bzl b/repositories/images.bzl
index aa56ac5..e944f8c 100644
--- a/repositories/images.bzl
+++ b/repositories/images.bzl
@@ -75,44 +75,6 @@
     """
     excludes = native.existing_rules().keys()
 
-    if "debian8" not in excludes:
-        container_pull(
-            name = "debian8",
-            digest = toolchain_container_sha256s()["debian8"],
-            registry = _REGISTRY,
-            repository = "google/debian8",
-        )
-
-    if "ubuntu16_04" not in excludes:
-        container_pull(
-            name = "ubuntu16_04",
-            digest = toolchain_container_sha256s()["ubuntu16_04"],
-            registry = _REGISTRY,
-            repository = "google/ubuntu16_04",
-        )
-
-    if "debian8_python3" not in excludes:
-        # Get debian8-built python3 interpreter from marketplace.gcr.io/google/python:latest.
-        # Base image: gcr.io/google-appengine/debian8:latest
-        # Base image ref: https://github.com/GoogleCloudPlatform/python-runtime/blob/a8a3e8b2d3239c184843db818e34a06f12dc1190/build.sh#L155
-        container_pull(
-            name = "debian8_python3",
-            digest = toolchain_container_sha256s()["debian8_python3"],
-            registry = _REGISTRY,
-            repository = "google/python",
-        )
-
-    if "ubuntu16_04_python3" not in excludes:
-        # Get ubuntu16_04-built python3 interpreter from gcr.io/google-appengine/python:latest.
-        # Base image: gcr.io/gcp-runtimes/ubuntu_16_0_4:latest
-        # Base image ref: https://github.com/GoogleCloudPlatform/python-runtime/blob/a8a3e8b2d3239c184843db818e34a06f12dc1190/build.sh#L153
-        container_pull(
-            name = "ubuntu16_04_python3",
-            digest = toolchain_container_sha256s()["ubuntu16_04_python3"],
-            registry = "gcr.io",
-            repository = "google-appengine/python",
-        )
-
     if "debian8-clang" not in excludes:
         container_pull(
             name = "debian8-clang",
@@ -128,13 +90,3 @@
             registry = _REGISTRY,
             repository = "google/clang-ubuntu",
         )
-
-    # Note that we pull trusty base from "index.docker.io" registry and not from
-    # "marketplace.gcr.io" as we do for other base images.
-    if "trusty" not in excludes:
-        container_pull(
-            name = "trusty",
-            registry = "index.docker.io",
-            repository = "library/ubuntu",
-            tag = "14.04",
-        )
diff --git a/repositories/repositories.bzl b/repositories/repositories.bzl
index f88f873..a64bdfa 100644
--- a/repositories/repositories.bzl
+++ b/repositories/repositories.bzl
@@ -20,33 +20,6 @@
     "http_archive",
     "http_file",
 )
-load(
-    "//third_party/golang:revision.bzl",
-    "GOLANG_REVISION",
-    "GOLANG_SHA256",
-)
-load(
-    "//third_party/clang:revision.bzl",
-    "CLANG_REVISION",
-    "DEBIAN8_CLANG_SHA256",
-    "UBUNTU16_04_CLANG_SHA256",
-)
-load(
-    "//third_party/libcxx:revision.bzl",
-    "DEBIAN8_LIBCXX_SHA256",
-    "LIBCXX_REVISION",
-    "UBUNTU16_04_LIBCXX_SHA256",
-)
-load(
-    "//third_party/openjdk:revision.bzl",
-    "JDK_VERSION",
-    "OPENJDK_SHA256",
-    "OPENJDK_SRC_SHA256",
-)
-load(
-    "//container/common/bazel:version.bzl",
-    "BAZEL_VERSION_SHA256S",
-)
 
 def repositories():
     """Download dependencies of bazel-toolchains."""
@@ -104,106 +77,3 @@
             sha256 = "30af2ca7abfb65987cd61802ca6e352aadc6129dfb5bfc9c81f16617bc3a4416",
             urls = ["https://bazel.build/bazel-release.pub.gpg"],
         )
-
-    # Docker gpg key necessary to install Docker in the containers.
-    if "docker_gpg" not in excludes:
-        http_file(
-            name = "docker_gpg",
-            downloaded_file_path = "docker_gpg",
-            sha256 = "1500c1f56fa9e26b9b8f42452a553675796ade0807cdce11975eb98170b3a570",
-            urls = ["https://download.docker.com/linux/ubuntu/gpg"],
-        )
-
-    # GCloud gpg key necessary to install GCloud in the containers.
-    if "gcloud_gpg" not in excludes:
-        http_file(
-            name = "gcloud_gpg",
-            downloaded_file_path = "gcloud_gpg",
-            sha256 = "226ba1072f20e4ff97ee4f94e87bf45538a900a6d9b25399a7ac3dc5a2f3af87",
-            urls = ["https://packages.cloud.google.com/apt/doc/apt-key.gpg"],
-        )
-
-    # Launchpad OpenJDK key used when install java in trusty.
-    if "launchpad_openjdk_gpg" not in excludes:
-        http_file(
-            name = "launchpad_openjdk_gpg",
-            downloaded_file_path = "launchpad_openjdk_gpg",
-            sha256 = "54b6274820df34a936ccc6f5cb725a9b7bb46075db7faf0ef7e2d86452fa09fd",
-            urls = ["http://keyserver.ubuntu.com/pks/lookup?op=get&fingerprint=on&search=0xEB9B1D8886F44E2A"],
-        )
-
-    # =============================== Toolchains ===============================
-    # Golang
-    if "golang_release" not in excludes:
-        http_file(
-            name = "golang_release",
-            downloaded_file_path = "go" + GOLANG_REVISION + ".linux-amd64.tar.gz",
-            sha256 = GOLANG_SHA256,
-            urls = ["https://storage.googleapis.com/golang/go" + GOLANG_REVISION + ".linux-amd64.tar.gz"],
-        )
-
-    # Clang
-    if "debian8_clang_release" not in excludes:
-        http_file(
-            name = "debian8_clang_release",
-            downloaded_file_path = "clang_" + CLANG_REVISION + ".tar.gz",
-            sha256 = DEBIAN8_CLANG_SHA256,
-            urls = ["https://storage.googleapis.com/clang-builds-stable/clang-debian8/clang_" + CLANG_REVISION + ".tar.gz"],
-        )
-
-    if "ubuntu16_04_clang_release" not in excludes:
-        http_file(
-            name = "ubuntu16_04_clang_release",
-            downloaded_file_path = "clang_" + CLANG_REVISION + ".tar.gz",
-            sha256 = UBUNTU16_04_CLANG_SHA256,
-            urls = ["https://storage.googleapis.com/clang-builds-stable/clang-ubuntu16_04/clang_" + CLANG_REVISION + ".tar.gz"],
-        )
-
-    # libcxx
-    if "debian8_libcxx_release" not in excludes:
-        http_file(
-            name = "debian8_libcxx_release",
-            downloaded_file_path = "libcxx-msan_" + LIBCXX_REVISION + ".tar.gz",
-            sha256 = DEBIAN8_LIBCXX_SHA256,
-            urls = ["https://storage.googleapis.com/clang-builds-stable/clang-debian8/libcxx-msan_" + LIBCXX_REVISION + ".tar.gz"],
-        )
-
-    if "ubuntu16_04_libcxx_release" not in excludes:
-        http_file(
-            name = "ubuntu16_04_libcxx_release",
-            downloaded_file_path = "libcxx-msan_" + LIBCXX_REVISION + ".tar.gz",
-            sha256 = UBUNTU16_04_LIBCXX_SHA256,
-            urls = ["https://storage.googleapis.com/clang-builds-stable/clang-ubuntu16_04/libcxx-msan_" + LIBCXX_REVISION + ".tar.gz"],
-        )
-
-    # ============================ Bazel installers ============================
-    # Official Bazel installer.sh for all supported versions.
-    for bazel_version, bazel_sha256 in BAZEL_VERSION_SHA256S.items():
-        name = "bazel_%s_installer" % (bazel_version.replace(".", ""))
-        if name not in excludes:
-            http_file(
-                name = name,
-                downloaded_file_path = "bazel-" + bazel_version + "-installer-linux-x86_64.sh",
-                sha256 = bazel_sha256,
-                urls = [
-                    "https://releases.bazel.build/" + bazel_version + "/release/bazel-" + bazel_version + "-installer-linux-x86_64.sh",
-                    "https://github.com/bazelbuild/bazel/releases/download/" + bazel_version + "/bazel-" + bazel_version + "-installer-linux-x86_64.sh",
-                ],
-            )
-
-    # ============================ Azul OpenJDK packages ============================
-    if "azul_open_jdk" not in excludes:
-        http_file(
-            name = "azul_open_jdk",
-            downloaded_file_path = "zulu" + JDK_VERSION + "-linux_x64-allmodules.tar.gz",
-            sha256 = OPENJDK_SHA256,
-            urls = ["https://mirror.bazel.build/openjdk/azul-zulu" + JDK_VERSION + "/zulu" + JDK_VERSION + "-linux_x64-allmodules.tar.gz"],
-        )
-
-    if "azul_open_jdk_src" not in excludes:
-        http_file(
-            name = "azul_open_jdk_src",
-            downloaded_file_path = "zsrc" + JDK_VERSION + ".zip",
-            sha256 = OPENJDK_SRC_SHA256,
-            urls = ["https://mirror.bazel.build/openjdk/azul-zulu" + JDK_VERSION + "/zsrc" + JDK_VERSION + ".zip"],
-        )
diff --git a/rules/toolchain_containers.bzl b/rules/toolchain_containers.bzl
index c3c312f..c0cb2d3 100644
--- a/rules/toolchain_containers.bzl
+++ b/rules/toolchain_containers.bzl
@@ -9,16 +9,6 @@
         "ubuntu16_04": "sha256:df51b5c52d71c9867cd9c1c88c81f67a85ff87f1defe7e9b7ac5fb7d652596bf",
 
         ###########################################################
-        # Python3 images                                          #
-        ###########################################################
-        # gcr.io/cloud-marketplace/google/python:latest
-        # Pinned to ace668f0f01e5e562ad09c3f128488ec33fa9126313f16505a86ae77865d1696 as it is the
-        # latest *debian8* based python3 image. Newer ones are ubuntu16_04 based.
-        "debian8_python3": "sha256:ace668f0f01e5e562ad09c3f128488ec33fa9126313f16505a86ae77865d1696",
-        # gcr.io/google-appengine/python:latest
-        "ubuntu16_04_python3": "sha256:1bbed7b5511bb582a2a8adf6a111defce8d184987c20d6281ce2bacaf2d4f71d",
-
-        ###########################################################
         # Clang images                                            #
         ###########################################################
         # gcr.io/cloud-marketplace/google/clang-debian8
diff --git a/tests/config/BUILD b/tests/config/BUILD
index 57f5f5f..b6fce02 100644
--- a/tests/config/BUILD
+++ b/tests/config/BUILD
@@ -16,7 +16,6 @@
 
 package(default_visibility = ["//visibility:public"])
 
-load("//rules/container:docker_toolchains.bzl", "toolchain_container")
 load("//rules:docker_config.bzl", "docker_toolchain_autoconfig")
 load(
     "//rules:environments.bzl",
@@ -31,87 +30,25 @@
 
 bazel_next_release_rc = "3"
 
-# Use "rbe-test-" prefix for easy identification of images to remove after the tests.
-toolchain_container(
-    name = "rbe-test-jessie-with-pkgs",
-    additional_repos = debian8_clang_default_repos(),
-    base = "@official_jessie//image",
-    keys = debian8_clang_default_keys(),
-    packages = debian8_clang_default_packages() + [
-        "gcc",
-    ],
-)
-
-# Targets here are for testing purposes, we do not actually
-# maintain these configs anywhere
-docker_toolchain_autoconfig(
-    name = "debian-jessie-autoconfig",
-    base = ":rbe-test-jessie-with-pkgs.tar",
-    env = gcc_env(),
-    tags = ["manual"],
-    test = True,
-)
-
-docker_toolchain_autoconfig(
-    name = "debian-jessie-bazel-head-autoconfig",
-    base = ":rbe-test-jessie-with-pkgs.tar",
-    env = gcc_env(),
-    tags = ["manual"],
-    test = True,
-    use_bazel_head = True,
-)
-
-# Note that we only support Bazel rc versions at 0.10.0 or above.
-docker_toolchain_autoconfig(
-    name = "debian-jessie-custom-bazel-rc-version-autoconfig",
-    base = ":rbe-test-jessie-with-pkgs.tar",
-    bazel_rc_version = bazel_next_release_rc,
-    bazel_version = bazel_next_release,
-    env = gcc_env(),
-    tags = ["manual"],
-    test = True,
-)
-
-# Use "rbe-test-" prefix for easy identification of images to remove after the tests.
-toolchain_container(
-    name = "rbe-test-xenial-with-pkgs",
-    additional_repos = [
-        "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8",
-    ],
-    base = "@official_xenial//image",
-    keys = [
-        "@bazel_gpg//file",
-    ],
-    packages = [
-        "bazel",
-        "curl",
-        "gcc",
-        "git",
-        "openjdk-8-jdk",
-        "python-dev",
-        "unzip",
-        "wget",
-        "zip",
-    ],
-)
-
 docker_toolchain_autoconfig(
     name = "ubuntu-xenial-autoconfig",
-    base = ":rbe-test-xenial-with-pkgs.tar",
+    base = "//tests/container:rbe-test-xenial-with-pkgs.tar",
     env = gcc_env(),
+    incompatible_changes_off = True,
     tags = ["manual"],
     test = True,
 )
 
 docker_toolchain_autoconfig(
     name = "external-repo-autoconfig",
-    base = ":rbe-test-xenial-with-pkgs.tar",
+    base = "//tests/container:rbe-test-xenial-with-pkgs.tar",
     config_repos = [
         "local_config_sh",
         "local_config_cc",
     ],
     env = gcc_env(),
     git_repo = "https://github.com/bazelbuild/bazel",
+    incompatible_changes_off = True,
     tags = ["manual"],
     test = True,
 )
@@ -122,7 +59,7 @@
 # bazel test //tests/config:this-project-repo-autoconfig_test --define mount_project=$(realpath .)
 docker_toolchain_autoconfig(
     name = "this-project-repo-autoconfig",
-    base = ":rbe-test-xenial-with-pkgs.tar",
+    base = "//tests/container:rbe-test-xenial-with-pkgs.tar",
     config_repos = [
         "local_config_sh",
         "local_config_cc",
@@ -136,7 +73,7 @@
 
 docker_toolchain_autoconfig(
     name = "ubuntu-xenial-bazel-head-autoconfig",
-    base = ":rbe-test-xenial-with-pkgs.tar",
+    base = "//tests/container:rbe-test-xenial-with-pkgs.tar",
     env = gcc_env(),
     tags = ["manual"],
     test = True,
@@ -146,7 +83,7 @@
 # Note that we only support Bazel rc versions at 0.10.0 or above.
 docker_toolchain_autoconfig(
     name = "ubuntu-xenial-custom-bazel-rc-version-autoconfig",
-    base = ":rbe-test-xenial-with-pkgs.tar",
+    base = "//tests/container:rbe-test-xenial-with-pkgs.tar",
     bazel_rc_version = bazel_next_release_rc,
     bazel_version = bazel_next_release,
     env = gcc_env(),
diff --git a/tests/container/BUILD b/tests/container/BUILD
index 006fbee..3a26384 100644
--- a/tests/container/BUILD
+++ b/tests/container/BUILD
@@ -16,21 +16,24 @@
 
 package(default_visibility = ["//visibility:public"])
 
-load("@base_images_docker//package_managers:download_pkgs.bzl", "download_pkgs")
-load("@base_images_docker//package_managers:install_pkgs.bzl", "install_pkgs")
-load("@base_images_docker//package_managers:apt_key.bzl", "add_apt_key")
 load("//rules/container:docker_toolchains.bzl", "toolchain_container")
 
 # This file contains some sample targets that excersise the container rules
 # We just keep these as examples that should not break (unless indicated)
 # with changes.
 
-# The two targets below test that toolchain_container can sequentially
-# install packages
+# Use "rbe-test-" prefix for easy identification of images to remove after the tests.
 toolchain_container(
-    name = "rbe-test-xenial-base",
+    name = "rbe-test-xenial-with-pkgs",
+    additional_repos = [
+        "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8",
+    ],
     base = "@official_xenial//image",
+    keys = [
+        "@bazel_gpg//file",
+    ],
     packages = [
+        "bazel",
         "curl",
         "gcc",
         "git",
@@ -41,80 +44,3 @@
         "zip",
     ],
 )
-
-toolchain_container(
-    name = "rbe-test-xenial-with-pkgs",
-    additional_repos = [
-        "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8",
-    ],
-    base = ":rbe-test-xenial-base.tar",
-    keys = [
-        "@bazel_gpg//file",
-    ],
-    packages = [
-        "bazel",
-    ],
-)
-
-# The target below (marked manual, should not be run by CI) shows a case of a
-# package that cannot be installed because downloading it requires an additional
-# package (apt-transport-https) not present in the base.
-toolchain_container(
-    name = "docker-noprereq-fails",
-    additional_repos = [
-        "deb [arch=amd64] https://download.docker.com/linux/debian jessie stable",
-    ],
-    base = "@debian8//image",
-    keys = [
-        "@debian_docker_gpg//file",
-    ],
-    packages = [
-        "apt-transport-https",
-        "docker-ce",
-    ],
-    tags = ["manual"],
-)
-
-# The targets below exemplify how to install a package whose download
-# has pre-requisites in a way that the final container in which the
-# package is installed does not need the pre-requisites
-download_pkgs(
-    name = "docker-prereq-packages",
-    image_tar = "@debian8//image",
-    packages = [
-        "apt-transport-https",
-    ],
-)
-
-install_pkgs(
-    name = "docker-prereq-test",
-    image_tar = "@debian8//image",
-    installables_tar = ":docker-prereq-packages.tar",
-    output_image_name = "docker-prereq-test:latest",
-)
-
-add_apt_key(
-    name = "test-docker-with-keys",
-    image = ":docker-prereq-test.tar",
-    keys = [
-        "@debian_docker_gpg//file",
-    ],
-)
-
-download_pkgs(
-    name = "test-docker-packages",
-    additional_repos = [
-        "deb [arch=amd64] https://download.docker.com/linux/debian jessie stable",
-    ],
-    image_tar = ":test-docker-with-keys.tar",
-    packages = [
-        "docker-ce",
-    ],
-)
-
-install_pkgs(
-    name = "docker",
-    image_tar = "@debian8//image",
-    installables_tar = ":test-docker-packages.tar",
-    output_image_name = "docker:latest",
-)
diff --git a/third_party/clang/BUILD b/third_party/clang/BUILD
deleted file mode 100644
index 2f186d6..0000000
--- a/third_party/clang/BUILD
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# This BUILD file is used for installing clang.tar.gz into /usr/local
-# of debian8-clang-fully-loaded container. The clang.tar.gz file was
-# downloaded by gsutil_cp rule in the WORKSPACE file, and contains
-# the same compiled clang binary as in
-# https://console.cloud.google.com/launcher/details/google/clang-debian8
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
-
-load("@bazel_tools//tools/build_defs/pkg:pkg.bzl", "pkg_tar")
-
-pkg_tar(
-    name = "debian8_tar",
-    package_dir = "/usr/local/",
-    strip_prefix = ".",
-    tags = ["manual"],
-    deps = [
-        "@debian8_clang_release//file",
-    ],
-)
-
-pkg_tar(
-    name = "ubuntu16_04_tar",
-    package_dir = "/usr/local/",
-    strip_prefix = ".",
-    tags = ["manual"],
-    deps = [
-        "@ubuntu16_04_clang_release//file",
-    ],
-)
diff --git a/third_party/clang/revision.bzl b/third_party/clang/revision.bzl
index 9e6d10f..35bb87e 100644
--- a/third_party/clang/revision.bzl
+++ b/third_party/clang/revision.bzl
@@ -1,5 +1 @@
 CLANG_REVISION = "r346485"
-
-DEBIAN8_CLANG_SHA256 = "cb23df8c63c40628bdb53de8dc3fdaaefd1ee5cdf36857f945a2ea0ec48def92"
-
-UBUNTU16_04_CLANG_SHA256 = "46953316d672669a22a5bca7ccec39b242687bf6bcac3db1d042731de2260844"
diff --git a/third_party/golang/BUILD b/third_party/golang/BUILD
deleted file mode 100644
index b9b956f..0000000
--- a/third_party/golang/BUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
-
-load("@bazel_tools//tools/build_defs/pkg:pkg.bzl", "pkg_tar")
-
-pkg_tar(
-    name = "tar",
-    package_dir = "/usr/local/",
-    strip_prefix = ".",
-    tags = ["manual"],
-    deps = ["@golang_release//file"],
-)
diff --git a/third_party/golang/revision.bzl b/third_party/golang/revision.bzl
deleted file mode 100644
index e18e823..0000000
--- a/third_party/golang/revision.bzl
+++ /dev/null
@@ -1,2 +0,0 @@
-GOLANG_REVISION = "1.11.2"
-GOLANG_SHA256 = "1dfe664fa3d8ad714bbd15a36627992effd150ddabd7523931f077b3926d736d"
diff --git a/third_party/libcxx/BUILD b/third_party/libcxx/BUILD
deleted file mode 100644
index 7b91a1b..0000000
--- a/third_party/libcxx/BUILD
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# This BUILD file is used for installing clang.tar.gz into /usr/local
-# of debian8-clang-fully-loaded container. The clang.tar.gz file was
-# downloaded by gsutil_cp rule in the WORKSPACE file, and contains
-# the same compiled clang binary as in
-# https://console.cloud.google.com/launcher/details/google/clang-debian8
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
-
-load("@bazel_tools//tools/build_defs/pkg:pkg.bzl", "pkg_tar")
-
-pkg_tar(
-    name = "debian8_tar",
-    package_dir = "/usr/local/",
-    strip_prefix = ".",
-    tags = ["manual"],
-    deps = [
-        "@debian8_libcxx_release//file",
-    ],
-)
-
-pkg_tar(
-    name = "ubuntu16_04_tar",
-    package_dir = "/usr/local/",
-    strip_prefix = ".",
-    tags = ["manual"],
-    deps = [
-        "@ubuntu16_04_libcxx_release//file",
-    ],
-)
diff --git a/third_party/libcxx/revision.bzl b/third_party/libcxx/revision.bzl
deleted file mode 100644
index 796901d..0000000
--- a/third_party/libcxx/revision.bzl
+++ /dev/null
@@ -1,5 +0,0 @@
-LIBCXX_REVISION = "r346485"
-
-DEBIAN8_LIBCXX_SHA256 = "ec93d2c85fc5a3bcd9d6d86461e7fb9c51d9296dde3e3e29b53ba50e7f758a66"
-
-UBUNTU16_04_LIBCXX_SHA256 = "9f494d7aa9ebb7416e585fd0172b3c0af2b56e72346fb120611f3c7497cddd58"
diff --git a/third_party/openjdk/BUILD b/third_party/openjdk/BUILD
deleted file mode 100644
index 5b5c0be..0000000
--- a/third_party/openjdk/BUILD
+++ /dev/null
@@ -1,44 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# This BUILD file is used for installing clang.tar.gz into /usr/local
-# of debian8-clang-fully-loaded container. The clang.tar.gz file was
-# downloaded by gsutil_cp rule in the WORKSPACE file, and contains
-# the same compiled clang binary as in
-# https://console.cloud.google.com/launcher/details/google/clang-debian8
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
-
-load("@bazel_tools//tools/build_defs/pkg:pkg.bzl", "pkg_tar")
-
-pkg_tar(
-    name = "open_jdk_tar",
-    package_dir = "/usr/lib/jvm/",
-    strip_prefix = ".",
-    tags = ["manual"],
-    deps = [
-        "@azul_open_jdk//file",
-    ],
-)
-
-pkg_tar(
-    name = "open_jdk_src_tar",
-    srcs = [
-        "@azul_open_jdk_src//file",
-    ],
-    package_dir = "/usr/src/jdk/",
-    tags = ["manual"],
-)
diff --git a/third_party/openjdk/revision.bzl b/third_party/openjdk/revision.bzl
deleted file mode 100644
index bdefd5b..0000000
--- a/third_party/openjdk/revision.bzl
+++ /dev/null
@@ -1,10 +0,0 @@
-JDK_VERSION = "10.2%2B3-jdk10.0.1"
-
-# JDK version 10 includes a '+' sign, so we need to keep track of the
-# version with both encodings for the java.yaml test.
-# TODO: remove for future versions of Java that do not need it
-JDK_VERSION_DECODED = "10.2+3-jdk10.0.1"
-
-OPENJDK_SHA256 = "57fad3602e74c79587901d6966d3b54ef32cb811829a2552163185d5064fe9b5"
-
-OPENJDK_SRC_SHA256 = "0ab6c7a1a8fc32992bcec4d7c77a587c02b8816f67bcb7d16154a60de2dce8a4"
diff --git a/third_party/python/BUILD b/third_party/python/BUILD
deleted file mode 100644
index 9ab8efb..0000000
--- a/third_party/python/BUILD
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright 2017 The Bazel Authors. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# This BUILD file is used for installing clang.tar.gz into /usr/local
-# of debian8-clang-fully-loaded container. The clang.tar.gz file was
-# downloaded by gsutil_cp rule in the WORKSPACE file, and contains
-# the same compiled clang binary as in
-# https://console.cloud.google.com/launcher/details/google/clang-debian8
-
-licenses(["notice"])  # Apache 2.0
-
-package(default_visibility = ["//visibility:public"])
-
-load("@base_images_docker//util:run.bzl", "container_run_and_extract")
-
-container_run_and_extract(
-    name = "debian8_tar",
-    commands = [
-        "tar cvf /python.tar --mtime='1970-01-01' /opt/python3.6",
-    ],
-    extract_file = "/python.tar",
-    image = "@debian8_python3//image",
-)
-
-container_run_and_extract(
-    name = "ubuntu16_04_tar",
-    commands = [
-        "tar cvf /python.tar --mtime='1970-01-01' /opt/python3.6",
-    ],
-    extract_file = "/python.tar",
-    image = "@ubuntu16_04_python3//image",
-)
