diff --git a/build/docker/old/Vagrantfile b/build/docker/old/Vagrantfile
deleted file mode 100644
index 5eac6e6..0000000
--- a/build/docker/old/Vagrantfile
+++ /dev/null
@@ -1,59 +0,0 @@
-# -*- mode: ruby -*-
-# vi: set ft=ruby :
-#
-# 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.
-
-# Base system bootstrap script
-$bootstrap_script = <<__BOOTSTRAP__
-echo "Provisioning defaults"
-
-sudo apt-get update -y
-sudo apt-get upgrade -y
-
-# Install default packages
-sudo apt-get install -y build-essential curl git
-
-# Install latest Docker version
-sudo curl -sSL https://get.docker.io/gpg | sudo apt-key add -
-sudo echo "deb http://get.docker.io/ubuntu docker main" > /etc/apt/sources.list.d/docker.list
-sudo apt-get update -y
-sudo apt-get install -y linux-image-extra-`uname -r` aufs-tools
-sudo apt-get install -y lxc-docker
-
-echo "Finished provisioning defaults"
-__BOOTSTRAP__
-
-Vagrant.configure("2") do |config|
-  config.vm.box = "trusty64"
-  config.vm.box_url = "https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box"
-  config.ssh.forward_agent = true
-
-  config.vm.provider :virtualbox do |vbox|
-    vbox.customize ["modifyvm", :id, "--memory", "1024"]
-    vbox.customize ["modifyvm", :id, "--cpus", "2"]
-  end
-
-  # Setup the default bootstrap script for our ubuntu base box image
-  config.vm.provision "shell", inline: $bootstrap_script
-
-  # Setup the custom docker image from our Ubuntu Dockerfile
-  config.vm.provision "docker" do |d|
-    d.build_image "/vagrant/ubuntu", args: "-t thrift"
-  end
-
-  # Setup the custom docker image from our Centos Dockerfile
-  #config.vm.provision "docker" do |d|
-  #  d.build_image "/vagrant/centos", args: "-t thrift-centos"
-  #end
-
-end
diff --git a/build/docker/old/centos-7.3/Dockerfile b/build/docker/old/centos-7.3/Dockerfile
deleted file mode 100644
index ba4c549..0000000
--- a/build/docker/old/centos-7.3/Dockerfile
+++ /dev/null
@@ -1,196 +0,0 @@
-# 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.
-
-# Apache Thrift Docker build environment for CentOS
-#
-# Known missing client libraries:
-#  - dotnet (will update to 2.0.0 separately)
-#  - haxe (not in centos)
-
-FROM centos:7.3.1611
-MAINTAINER Apache Thrift <dev@thrift.apache.org>
-
-RUN yum install -y epel-release
-
-# General dependencies
-RUN yum install -y \
-      autoconf \
-      bison \
-      bison-devel \
-      clang \
-      clang-analyzer \
-      cmake3 \
-      curl \
-      flex \
-      gcc \
-      gcc-c++ \
-      gdb \
-      git \
-      libtool \
-      m4 \
-      make \
-      tar \
-      unzip \
-      valgrind \
-      wget && \
-      ln -s /usr/bin/cmake3 /usr/bin/cmake && \
-      ln -s /usr/bin/cpack3 /usr/bin/cpack && \
-      ln -s /usr/bin/ctest3 /usr/bin/ctest
-
-# C++ dependencies
-RUN yum install -y \
-      boost-devel-static \
-      zlib-devel \
-      openssl-devel \
-      libevent-devel && \
-    cd /usr/lib64 && \
-    ln -s libboost_thread-mt.a libboost_thread.a
-
-# C# Dependencies
-RUN yum install -y \
-      mono-core \
-      mono-devel \
-      mono-web-devel \
-      mono-extras
-
-# D Dependencies
-RUN yum install -y http://downloads.dlang.org/releases/2.x/2.076.0/dmd-2.076.0-0.fedora.x86_64.rpm xdg-utils
-RUN curl -sSL https://github.com/D-Programming-Deimos/openssl/archive/master.tar.gz| tar xz && \
-    curl -sSL https://github.com/D-Programming-Deimos/libevent/archive/master.tar.gz| tar xz && \
-    mkdir -p /usr/include/dmd/druntime/import/deimos /usr/include/dmd/druntime/import/C && \
-    mv libevent-master/deimos/* openssl-master/deimos/* /usr/include/dmd/druntime/import/deimos/ && \
-    mv libevent-master/C/* openssl-master/C/* /usr/include/dmd/druntime/import/C/ && \
-    rm -rf libevent-master openssl-master
-
-# Dart
-RUN cd /usr/local && \
-    wget -q https://storage.googleapis.com/dart-archive/channels/stable/release/1.24.2/sdk/dartsdk-linux-x64-release.zip && \
-    unzip -q dartsdk-linux-x64-release.zip && \
-    rm dartsdk-linux-x64-release.zip
-ENV PATH /usr/local/dart-sdk/bin:$PATH
-
-# Erlang Dependencies
-RUN curl -sSL http://packages.erlang-solutions.com/rpm/centos/erlang_solutions.repo -o /etc/yum.repos.d/erlang_solutions.repo && \
-    yum install -y \
-      erlang-kernel \
-      erlang-erts \
-      erlang-stdlib \
-      erlang-eunit \
-      erlang-rebar \
-      erlang-tools
-
-# GLibC Dependencies
-RUN yum install -y glib2-devel
-
-# Go Dependencies
-RUN curl -sSL https://storage.googleapis.com/golang/go1.9.linux-amd64.tar.gz | tar -C /usr/local/ -xz
-ENV PATH /usr/local/go/bin:$PATH
-
-# Haxe Dependencies
-# Not in debian/stretch
-
-# Java Dependencies
-RUN yum install -y \
-      ant \
-      junit \
-      ant-junit \
-      java-1.8.0-openjdk-devel
-
-# Lua Dependencies
-# Lua in epel is too old (5.1.4, need 5.2) so we get the latest
-RUN yum install -y readline-devel && \
-    wget -q http://www.lua.org/ftp/lua-5.3.4.tar.gz && \
-    tar xzf lua-5.3.4.tar.gz && \
-    cd lua-5.3.4 && \
-    sed -i 's/CFLAGS= /CFLAGS= -fPIC /g' src/Makefile && \
-    make linux && \
-    make install && \
-    cd .. && \
-    rm -rf lua-5*
-
-# MinGW Dependencies
-RUN yum install -y \
-      mingw32-binutils \
-      mingw32-crt \
-      mingw32-nsis
-
-# Node.js Dependencies
-# Work around epel issue where they removed http-parser that nodejs depends on!
-RUN yum -y install https://opensource.enda.eu/packages/http-parser-2.7.1-3.el7.x86_64.rpm
-RUN yum install -y \
-      nodejs \
-      npm
-
-# Ocaml Dependencies
-RUN yum install -y \
-      ocaml \
-      ocaml-ocamldoc && \
-    wget -q https://raw.github.com/ocaml/opam/master/shell/opam_installer.sh -O - | sh -s /usr/local/bin && \
-    opam init --yes && \
-    opam install --yes oasis && \
-    echo '. /root/.opam/opam-init/init.sh > /dev/null 2> /dev/null || true' >> ~/.bashrc
-
-# Perl Dependencies
-RUN yum install -y \
-      perl \
-      perl-version \
-      perl-Bit-Vector \
-      perl-Class-Accessor \
-      perl-ExtUtils-MakeMaker \
-      perl-Test-Simple \
-      perl-IO-Socket-SSL \
-      perl-Net-SSLeay \
-      perl-Crypt-SSLeay
-
-# PHP Dependencies
-RUN yum install -y \
-      php \
-      php-devel \
-      php-pear \
-      re2c \
-      php-phpunit-PHPUnit \
-      bzip2
-
-# Python Dependencies
-RUN yum install -y \
-      python \
-      python-devel \
-      python-pip \
-      python-setuptools \
-      python34 \
-      python34-devel \
-      python34-pip \
-      python34-setuptools
-RUN pip2 install --upgrade pip
-RUN pip2 install --upgrade backports.ssl_match_hostname ipaddress setuptools six tornado tornado-testing twisted virtualenv zope-interface
-RUN pip3 install --upgrade pip
-RUN pip3 install --upgrade backports.ssl_match_hostname ipaddress setuptools six tornado tornado-testing twisted virtualenv zope-interface
-
-# Ruby Dependencies
-RUN yum install -y \
-      ruby \
-      ruby-devel \
-      rubygems && \
-    gem install bundler rake
-
-# Rust
-RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain 1.17.0
-ENV PATH /root/.cargo/bin:$PATH
-
-# Clean up
-RUN rm -rf /tmp/* && \
-    yum clean all
-
-ENV THRIFT_ROOT /thrift
-RUN mkdir -p $THRIFT_ROOT/src
-COPY Dockerfile $THRIFT_ROOT/
-WORKDIR $THRIFT_ROOT/src
diff --git a/build/docker/old/debian-jessie/Dockerfile b/build/docker/old/debian-jessie/Dockerfile
deleted file mode 100644
index 15e02e9..0000000
--- a/build/docker/old/debian-jessie/Dockerfile
+++ /dev/null
@@ -1,197 +0,0 @@
-# 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.
-
-# Apache Thrift Docker build environment for Debian
-#
-# Known missing client libraries:
-#  - dotnetcore
-#  - rust
-
-FROM buildpack-deps:jessie-scm
-MAINTAINER Apache Thrift <dev@thrift.apache.org>
-
-ENV DEBIAN_FRONTEND noninteractive
-
-# Add apt sources
-# jessie-backports for cmake and some ruby bits
-RUN echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/jessie-backports.list
-
-# Dart
-RUN curl https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - && \
-    curl https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list > /etc/apt/sources.list.d/dart_stable.list && \
-    sed -i /etc/apt/sources.list.d/dart_stable.list -e 's/https:/http:/g'
-
-RUN apt-get update && apt-get install -y --no-install-recommends \
-`# General dependencies` \
-      bison \
-      build-essential \
-      clang \
-      debhelper \
-      flex \
-      pkg-config && \
-    apt-get -t jessie-backports install -y --no-install-recommends cmake
-
-RUN apt-get install -y --no-install-recommends \
-`# C++ dependencies` \
-      libboost-dev \
-      libboost-filesystem-dev \
-      libboost-program-options-dev \
-      libboost-system-dev \
-      libboost-test-dev \
-      libboost-thread-dev \
-      libevent-dev \
-      libssl-dev \
-      qt5-default \
-      qtbase5-dev \
-      qtbase5-dev-tools
-
-RUN apt-get install -y --no-install-recommends \
-`# Java dependencies` \
-      ant \
-      ant-optional \
-      openjdk-7-jdk \
-      maven
-
-RUN apt-get install -y --no-install-recommends \
-`# Python dependencies` \
-      python-all \
-      python-all-dbg \
-      python-all-dev \
-      python-pip \
-      python-setuptools \
-      python-twisted \
-      python-zope.interface \
-      python3-all \
-      python3-all-dbg \
-      python3-all-dev \
-      python3-setuptools \
-      python3-pip
-
-RUN apt-get install -y --no-install-recommends \
-`# Ruby dependencies` \
-      ruby \
-      ruby-bundler \
-      ruby-dev \
-`# Perl dependencies` \
-      libbit-vector-perl \
-      libclass-accessor-class-perl \
-      libcrypt-ssleay-perl \
-      libio-socket-ssl-perl \
-      libnet-ssleay-perl
-
-RUN apt-get -t jessie-backports install -y ruby-bundler
-RUN apt-get install -y --no-install-recommends \
-`# Php dependencies` \
-      php5 \
-      php5-dev \
-      php5-cli \
-      php-pear \
-      re2c \
-      phpunit \
-`# GlibC dependencies` \
-      libglib2.0-dev
-
-RUN apt-get update && apt-get install -y --no-install-recommends \
-`# Erlang dependencies` \
-      erlang-base \
-      erlang-eunit \
-      erlang-dev \
-      erlang-tools \
-      rebar
-
-RUN apt-get update && apt-get install -y --no-install-recommends \
-`# Haxe dependencies` \
-      neko \
-      neko-dev \
-      libneko0
-
-RUN apt-get update && apt-get install -y --no-install-recommends \
-`# Node.js dependencies` \
-      nodejs \
-      nodejs-dev \
-      nodejs-legacy \
-      npm
-
-RUN apt-get update && apt-get install -y --no-install-recommends \
-`# D dependencies` \
-      xdg-utils \
-`# Dart dependencies` \
-      dart \
-`# Lua dependencies` \
-      lua5.2 \
-      lua5.2-dev \
-`# MinGW dependencies` \
-      mingw32 \
-      mingw32-binutils \
-`#      mingw32-runtime` \
-      nsis \
-`# Clean up` \
-    && rm -rf /var/cache/apt/* && \
-    rm -rf /var/lib/apt/lists/* && \
-    rm -rf /tmp/* && \
-    rm -rf /var/tmp/*
-
-# Ruby
-RUN gem install bundler --no-ri --no-rdoc
-
-# Python optional dependencies
-RUN pip2 install -U ipaddress backports.ssl_match_hostname tornado
-RUN pip3 install -U backports.ssl_match_hostname tornado
-
-# Go
-RUN curl -sSL https://storage.googleapis.com/golang/go1.4.3.linux-amd64.tar.gz | tar -C /usr/local/ -xz
-ENV PATH /usr/local/go/bin:$PATH
-
-# Haxe
-RUN mkdir -p /usr/lib/haxe && \
-    wget -O - https://github.com/HaxeFoundation/haxe/releases/download/3.2.1/haxe-3.2.1-linux64.tar.gz | \
-    tar -C /usr/lib/haxe --strip-components=1 -xz && \
-    ln -s /usr/lib/haxe/haxe /usr/bin/haxe && \
-    ln -s /usr/lib/haxe/haxelib /usr/bin/haxelib && \
-    mkdir -p /usr/lib/haxe/lib  && \
-    chmod -R 777 /usr/lib/haxe/lib && \
-    haxelib setup /usr/lib/haxe/lib && \
-    haxelib install hxcpp
-
-# D
-RUN curl -sSL http://downloads.dlang.org/releases/2.x/2.070.0/dmd_2.070.0-0_amd64.deb -o /tmp/dmd_2.070.0-0_amd64.deb && \
-    dpkg -i /tmp/dmd_2.070.0-0_amd64.deb && \
-    rm /tmp/dmd_2.070.0-0_amd64.deb && \
-    curl -sSL https://github.com/D-Programming-Deimos/openssl/archive/master.tar.gz| tar xz && \
-    curl -sSL https://github.com/D-Programming-Deimos/libevent/archive/master.tar.gz| tar xz && \
-    mkdir -p /usr/include/dmd/druntime/import/deimos /usr/include/dmd/druntime/import/C && \
-    mv libevent-master/deimos/* openssl-master/deimos/* /usr/include/dmd/druntime/import/deimos/ && \
-    mv libevent-master/C/* openssl-master/C/* /usr/include/dmd/druntime/import/C/ && \
-    rm -rf libevent-master openssl-master && \
-    echo 'gcc -Wl,--no-as-needed $*' > /usr/local/bin/gcc-dmd && \
-    chmod 755 /usr/local/bin/gcc-dmd && \
-    echo 'CC=/usr/local/bin/gcc-dmd' >> /etc/dmd.conf
-
-# Dart
-ENV PATH /usr/lib/dart/bin:$PATH
-
-# OCaml
-RUN echo 'deb http://ppa.launchpad.net/avsm/ppa/ubuntu trusty main' > /etc/apt/sources.list.d/avsm-official-ocaml.list && \
-    gpg --keyserver keyserver.ubuntu.com --recv 61707B09 && \
-    gpg --export --armor 61707B09 | apt-key add - && \
-    apt-get update && \
-    apt-get install -y ocaml opam && \
-    opam init && \
-    opam install oasis
-
-# Force utf8 locale to successfully build Haskell tf-random
-ENV LC_ALL C.UTF-8
-
-ENV THRIFT_ROOT /thrift
-RUN mkdir -p $THRIFT_ROOT/src
-COPY Dockerfile $THRIFT_ROOT/
-WORKDIR $THRIFT_ROOT/src
diff --git a/build/docker/old/debian-stretch/Dockerfile b/build/docker/old/debian-stretch/Dockerfile
deleted file mode 100644
index f584bba..0000000
--- a/build/docker/old/debian-stretch/Dockerfile
+++ /dev/null
@@ -1,225 +0,0 @@
-# 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.
-
-# Apache Thrift Docker build environment for Debian Stretch
-#
-# Known issues:
-# - d: deimos for libevent and openssl disabled - build errors
-# - dotnetcore, because netcore is for 1.0.0-preview and 2.0.0 is out
-# - rust: cargo not in debian repo - perhaps not needed?
-
-FROM buildpack-deps:stretch-scm
-MAINTAINER Apache Thrift <dev@thrift.apache.org>
-
-ENV DEBIAN_FRONTEND noninteractive
-
-### Add apt repos
-
-RUN apt-get update && apt-get install -y --no-install-recommends apt apt-transport-https curl wget apt-utils
-
-# D
-RUN wget http://master.dl.sourceforge.net/project/d-apt/files/d-apt.list -O /etc/apt/sources.list.d/d-apt.list && \
-    apt-get update && apt-get -y --allow-unauthenticated install --reinstall d-apt-keyring
-
-# Dart
-RUN curl https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - && \
-    curl https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list > /etc/apt/sources.list.d/dart_stable.list && \
-    sed -i /etc/apt/sources.list.d/dart_stable.list -e 's/https:/http:/g'
-
-# dotnet (core) 2.0.0 - project isn't ready for this yet:
-# RUN curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > /etc/apt/trusted.gpg.d/microsoft.gpg && \
-#     echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-xenial-prod xenial main" > /etc/apt/sources.list.d/dotnetdev.list
-
-# node.js (this step runs apt-get update internally)
-RUN curl -sL https://deb.nodesource.com/setup_8.x | bash
-
-
-### install general dependencies
-RUN apt-get install -y --no-install-recommends \
-`# General dependencies` \
-      bash-completion \
-      bison \
-      build-essential \
-      clang \
-      cmake \
-      debhelper \
-      flex \
-      gdb \
-      ninja-build \
-      pkg-config \
-      valgrind \
-      vim
-
-
-### languages
-
-RUN apt-get install -y --no-install-recommends \
-`# C++ dependencies` \
-      libboost-dev \
-      libboost-filesystem-dev \
-      libboost-program-options-dev \
-      libboost-system-dev \
-      libboost-test-dev \
-      libboost-thread-dev \
-      libevent-dev \
-      libssl-dev \
-      qt5-default \
-      qtbase5-dev \
-      qtbase5-dev-tools
-
-RUN apt-get install -y --no-install-recommends \
-`# D dependencies` \
-      dmd-bin \
-      libevent-dev \
-      libssl-dev \
-      xdg-utils
-# libevent deimos disabled - build errors
-# RUN mkdir -p /usr/include/dmd/druntime/import/deimos /usr/include/dmd/druntime/import/C && \
-#     curl -sSL https://github.com/D-Programming-Deimos/libevent/archive/master.tar.gz| tar xz && \
-#     mv libevent-master/deimos/* /usr/include/dmd/druntime/import/deimos/ && \
-#     mv libevent-master/C/* /usr/include/dmd/druntime/import/C/ && \
-#     rm -rf libevent-master
-# openssl deimos doesn't work with openssl-1.1.0 - disabling it for now:
-# RUN curl -sSL https://github.com/D-Programming-Deimos/openssl/archive/master.tar.gz| tar xz && \
-#     mv openssl-master/deimos/* /usr/include/dmd/druntime/import/deimos/ && \
-#     mv openssl-master/C/* /usr/include/dmd/druntime/import/C/ && \
-#     rm -rf openssl-master
-
-RUN apt-get install -y --no-install-recommends \
-`# Dart dependencies` \
-      dart
-ENV PATH /usr/lib/dart/bin:$PATH
-
-# project isn't ready for this quite yet:
-# RUN apt-get install -y --no-install-recommends \
-# `# dotnet core dependencies` \
-#       dotnet-sdk-8.0 \
-#       dotnet-runtime-8.0 \
-#       aspnetcore-runtime-8.0 \
-#       dotnet-apphost-pack-8.0
-
-RUN apt-get install -y --no-install-recommends \
-`# Erlang dependencies` \
-      erlang-base \
-      erlang-eunit \
-      erlang-dev \
-      erlang-tools \
-      rebar
-
-RUN apt-get install -y --no-install-recommends \
-`# GlibC dependencies` \
-      libglib2.0-dev
-
-RUN apt-get install -y --no-install-recommends \
-`# golang (go) dependencies` \
-      golang-go
-
-RUN apt-get install -y --no-install-recommends \
-`# Haxe dependencies` \
-      haxe \
-      neko \
-      neko-dev
-RUN haxelib setup --always /usr/share/haxe/lib && \
-    haxelib install --always hxcpp
-
-RUN apt-get install -y --no-install-recommends \
-`# Java dependencies` \
-      ant \
-      ant-optional \
-      openjdk-8-jdk \
-      maven
-
-RUN apt-get install -y --no-install-recommends \
-`# Lua dependencies` \
-      lua5.2 \
-      lua5.2-dev
-# https://bugs.launchpad.net/ubuntu/+source/lua5.3/+bug/1707212
-# same for debian stretch
-# lua5.3 does not install alternatives so stick with 5.2 here
-
-RUN apt-get install -y --no-install-recommends \
-`# Node.js dependencies` \
-      nodejs
-
-RUN apt-get install -y --no-install-recommends \
-`# OCaml dependencies` \
-      ocaml \
-      opam && \
-    opam init --yes && \
-    opam install --yes oasis
-
-RUN apt-get install -y --no-install-recommends \
-`# Perl dependencies` \
-      libbit-vector-perl \
-      libclass-accessor-class-perl \
-      libcrypt-ssleay-perl \
-      libio-socket-ssl-perl \
-      libnet-ssleay-perl
-
-RUN apt-get install -y --no-install-recommends \
-`# Php dependencies` \
-      php7.0 \
-      php7.0-cli \
-      php7.0-dev \
-      php-pear \
-      re2c \
-      phpunit
-
-RUN apt-get install -y --no-install-recommends \
-`# Python dependencies` \
-      python-all \
-      python-all-dbg \
-      python-all-dev \
-      python-backports.ssl-match-hostname \
-      python-ipaddress \
-      python-pip \
-      python-setuptools \
-      python-six \
-      python-tornado \
-      python-twisted \
-      python-wheel \
-      python-zope.interface \
-      python3-all \
-      python3-all-dbg \
-      python3-all-dev \
-      python3-setuptools \
-      python3-six \
-      python3-tornado \
-      python3-twisted \
-      python3-wheel \
-      python3-zope.interface && \
-    pip install --upgrade backports.ssl_match_hostname
-
-RUN apt-get install -y --no-install-recommends \
-`# Ruby dependencies` \
-      ruby \
-      ruby-dev \
-      ruby-bundler
-RUN gem install bundler --no-ri --no-rdoc
-
-RUN apt-get install -y --no-install-recommends \
-`# Rust dependencies` \
-      rustc
-
-# Update anything else left hanging
-RUN apt-get dist-upgrade -y
-
-# Clean up
-RUN rm -rf /var/cache/apt/* && \
-    rm -rf /var/lib/apt/lists/* && \
-    rm -rf /tmp/* && \
-    rm -rf /var/tmp/*
-
-ENV THRIFT_ROOT /thrift
-RUN mkdir -p $THRIFT_ROOT/src
-COPY Dockerfile $THRIFT_ROOT/
-WORKDIR $THRIFT_ROOT/src
diff --git a/build/docker/old/ubuntu-artful/Dockerfile b/build/docker/old/ubuntu-artful/Dockerfile
deleted file mode 100644
index f94b700..0000000
--- a/build/docker/old/ubuntu-artful/Dockerfile
+++ /dev/null
@@ -1,260 +0,0 @@
-# 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.
-
-#
-# Apache Thrift Docker build environment for Ubuntu Artful
-# Using all stock Ubuntu Artful packaging except for:
-# - cpp: stock boost 1.62 in artful has a nasty bug so we use stock boost 1.63
-# - d: dmd does not come with Ubuntu
-# - dart: does not come with Ubuntu. Pinned to last 1.x release
-# - dotnet: does not come with Ubuntu
-# - haxe: version 3.4.2 that comes with Ubuntu cores in our CI build
-# - go: artful comes with 1.9, we want the latest (supported)
-# - nodejs: want v8, artful comes with v6
-#
-
-FROM buildpack-deps:artful-scm
-MAINTAINER Apache Thrift <dev@thrift.apache.org>
-ENV DEBIAN_FRONTEND noninteractive
-
-### Add apt repos
-
-RUN apt-get update && \
-    apt-get dist-upgrade -y && \
-    apt-get install -y --no-install-recommends \
-      apt \
-      apt-transport-https \
-      apt-utils \
-      curl \
-      dirmngr \
-      software-properties-common \
-      wget
-
-# Dart
-RUN curl https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - && \
-    curl https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list > \
-      /etc/apt/sources.list.d/dart_stable.list
-ENV DART_VERSION 1.24.3-1
-
-# dotnet (netcore)
-RUN curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > /etc/apt/trusted.gpg.d/microsoft.gpg && \
-    echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-artful-prod artful main" > \
-      /etc/apt/sources.list.d/dotnetdev.list
-
-# haxe (https://haxe.org/download/linux/)
-RUN add-apt-repository ppa:haxe/releases -y
-
-# node.js
-RUN curl -sL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - && \
-    echo "deb https://deb.nodesource.com/node_8.x artful main" | tee /etc/apt/sources.list.d/nodesource.list
-
-### install general dependencies
-RUN apt-get update && apt-get install -y --no-install-recommends \
-`# General dependencies` \
-      bash-completion \
-      bison \
-      build-essential \
-      clang \
-      cmake \
-      debhelper \
-      flex \
-      gdb \
-      llvm \
-      ninja-build \
-      pkg-config \
-      valgrind \
-      vim
-ENV PATH /usr/lib/llvm-3.8/bin:$PATH
-
-# boost-1.62 has a terrible bug in boost::test, see https://svn.boost.org/trac10/ticket/12507
-RUN apt-get install -y --no-install-recommends \
-`# C++ dependencies` \
-      libboost1.63-all-dev \
-      libevent-dev \
-      libssl-dev \
-      qt5-default \
-      qtbase5-dev \
-      qtbase5-dev-tools
-
-ENV SBCL_VERSION 1.4.5
-RUN \
-`# Common Lisp (sbcl) dependencies` \
-    curl --version && \
-    curl -O -J -L https://kent.dl.sourceforge.net/project/sbcl/sbcl/${SBCL_VERSION}/sbcl-${SBCL_VERSION}-x86-64-linux-binary.tar.bz2 && \
-    tar xjf sbcl-${SBCL_VERSION}-x86-64-linux-binary.tar.bz2 && \
-    cd sbcl-${SBCL_VERSION}-x86-64-linux && \
-    ./install.sh && \
-    sbcl --version && \
-    rm -rf sbcl*
-
-ENV D_VERSION     2.080.0
-ENV DMD_DEB       dmd_2.080.0-0_amd64.deb
-RUN \
-`# D dependencies` \
-    wget -q http://downloads.dlang.org/releases/2.x/${D_VERSION}/${DMD_DEB} && \
-    dpkg --install ${DMD_DEB} && \
-    rm -f ${DMD_DEB} && \
-    mkdir -p /usr/include/dmd/druntime/import/deimos /usr/include/dmd/druntime/import/C && \
-    curl -sSL https://github.com/D-Programming-Deimos/libevent/archive/master.tar.gz| tar xz && \
-    mv libevent-master/deimos/* /usr/include/dmd/druntime/import/deimos/ && \
-    mv libevent-master/C/* /usr/include/dmd/druntime/import/C/ && \
-    rm -rf libevent-master && \
-    curl -sSL https://github.com/D-Programming-Deimos/openssl/archive/master.tar.gz| tar xz && \
-    mv openssl-master/deimos/* /usr/include/dmd/druntime/import/deimos/ && \
-    mv openssl-master/C/* /usr/include/dmd/druntime/import/C/ && \
-    rm -rf openssl-master
-
-RUN apt-get install -y --no-install-recommends \
-`# Dart dependencies` \
-      dart=$DART_VERSION
-ENV PATH /usr/lib/dart/bin:$PATH
-
-RUN apt-get install -y --no-install-recommends \
-`# dotnet core dependencies` \
-      dotnet-sdk-8.0 \
-      dotnet-runtime-8.0 \
-      aspnetcore-runtime-8.0 \
-      dotnet-apphost-pack-8.0
-
-RUN apt-get install -y --no-install-recommends \
-`# Erlang dependencies` \
-      erlang-base \
-      erlang-eunit \
-      erlang-dev \
-      erlang-tools \
-      rebar
-
-RUN apt-get install -y --no-install-recommends \
-`# GlibC dependencies` \
-      libglib2.0-dev
-
-# golang
-ENV GOLANG_VERSION 1.10
-ENV GOLANG_DOWNLOAD_URL https://golang.org/dl/go$GOLANG_VERSION.linux-amd64.tar.gz
-ENV GOLANG_DOWNLOAD_SHA256 b5a64335f1490277b585832d1f6c7f8c6c11206cba5cd3f771dcb87b98ad1a33
-RUN curl -fsSL "$GOLANG_DOWNLOAD_URL" -o golang.tar.gz && \
-      echo "$GOLANG_DOWNLOAD_SHA256  golang.tar.gz" | sha256sum -c - && \
-            tar -C /usr/local -xzf golang.tar.gz && \
-                  ln -s /usr/local/go/bin/go /usr/local/bin && \
-                        rm golang.tar.gz
-
-RUN apt-get install -y --no-install-recommends \
-`# Haxe dependencies` \
-      haxe \
-      neko \
-      neko-dev && \
-    haxelib setup --always /usr/share/haxe/lib && \
-    haxelib install --always hxcpp 2>&1 > /dev/null
-
-RUN apt-get install -y --no-install-recommends \
-`# Java dependencies` \
-      ant \
-      ant-optional \
-      openjdk-8-jdk \
-      maven
-
-RUN apt-get install -y --no-install-recommends \
-`# Lua dependencies` \
-      lua5.2 \
-      lua5.2-dev
-# https://bugs.launchpad.net/ubuntu/+source/lua5.3/+bug/1707212
-# lua5.3 does not install alternatives!
-# need to update our luasocket code, lua doesn't have luaL_openlib any more
-
-RUN apt-get install -y --no-install-recommends \
-`# Node.js dependencies` \
-      nodejs
-
-# Test dependencies for running puppeteer
-RUN apt-get install -y --no-install-recommends \
-`# JS dependencies` \
-      libxss1
-
-RUN apt-get install -y --no-install-recommends \
-`# OCaml dependencies` \
-      ocaml \
-      opam && \
-    opam init --yes && \
-    opam install --yes oasis
-
-RUN apt-get install -y --no-install-recommends \
-`# Perl dependencies` \
-      libbit-vector-perl \
-      libclass-accessor-class-perl \
-      libcrypt-ssleay-perl \
-      libio-socket-ssl-perl \
-      libnet-ssleay-perl
-
-RUN apt-get install -y --no-install-recommends \
-`# Php dependencies` \
-      php \
-      php-cli \
-      php-dev \
-      php-pear \
-      re2c \
-      composer
-
-RUN apt-get install -y --no-install-recommends \
-`# Python dependencies` \
-      python-all \
-      python-all-dbg \
-      python-all-dev \
-      python-ipaddress \
-      python-pip \
-      python-setuptools \
-      python-six \
-      python-tornado \
-      python-twisted \
-      python-wheel \
-      python-zope.interface && \
-   pip install --upgrade backports.ssl_match_hostname
-
-RUN apt-get install -y --no-install-recommends \
-`# Python3 dependencies` \
-      python3-all \
-      python3-all-dbg \
-      python3-all-dev \
-      python3-pip \
-      python3-setuptools \
-      python3-six \
-      python3-tornado \
-      python3-twisted \
-      python3-wheel \
-      python3-zope.interface
-
-RUN apt-get install -y --no-install-recommends \
-`# Ruby dependencies` \
-      ruby \
-      ruby-dev \
-      ruby-bundler
-
-RUN apt-get install -y --no-install-recommends \
-`# Rust dependencies` \
-      cargo \
-      rustc
-
-RUN apt-get install -y --no-install-recommends \
-`# Static Code Analysis dependencies` \
-      cppcheck \
-      sloccount && \
-    pip install flake8
-
-# Clean up
-RUN rm -rf /var/cache/apt/* && \
-    rm -rf /var/lib/apt/lists/* && \
-    rm -rf /tmp/* && \
-    rm -rf /var/tmp/*
-
-ENV THRIFT_ROOT /thrift
-RUN mkdir -p $THRIFT_ROOT/src
-COPY Dockerfile $THRIFT_ROOT/
-WORKDIR $THRIFT_ROOT/src
diff --git a/build/docker/old/ubuntu-bionic/Dockerfile b/build/docker/old/ubuntu-bionic/Dockerfile
deleted file mode 100644
index 6d337d7..0000000
--- a/build/docker/old/ubuntu-bionic/Dockerfile
+++ /dev/null
@@ -1,318 +0,0 @@
-# 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.
-
-#
-# Apache Thrift Docker build environment for Ubuntu Bionic
-# with some updated packages.
-#
-
-FROM buildpack-deps:bionic-scm
-LABEL MAINTAINER='Apache Thrift <dev@thrift.apache.org>'
-ENV DEBIAN_FRONTEND noninteractive
-
-### Add apt repos
-
-RUN apt-get update -yq && \
-      apt-get dist-upgrade -y && \
-      apt-get install -y --no-install-recommends --fix-missing \
-      apt \
-      apt-transport-https \
-      apt-utils \
-      curl \
-      dirmngr \
-      software-properties-common \
-      wget
-
-# Dart
-RUN curl https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - && \
-      curl https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list > \
-      /etc/apt/sources.list.d/dart_stable.list
-
-# dotnet (netcore)
-RUN curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > /etc/apt/trusted.gpg.d/microsoft.gpg && \
-      wget -q -O /etc/apt/sources.list.d/microsoft-prod.list https://packages.microsoft.com/config/ubuntu/18.04/prod.list && \
-      chown root:root /etc/apt/trusted.gpg.d/microsoft.gpg && \
-      chown root:root /etc/apt/sources.list.d/microsoft-prod.list
-
-# node.js
-RUN curl -sL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - && \
-      echo "deb https://deb.nodesource.com/node_10.x bionic main" | tee /etc/apt/sources.list.d/nodesource.list
-
-### install general dependencies
-RUN apt-get update && apt-get install -y --no-install-recommends \
-      `# General dependencies` \
-      bash-completion \
-      bison \
-      build-essential \
-      clang \
-      cmake \
-      debhelper \
-      flex \
-      gdb \
-      libasound2 \
-      libatk-bridge2.0-0 \
-      libgtk-3-0 \
-      llvm \
-      ninja-build \
-      pkg-config \
-      unzip \
-      valgrind \
-      vim
-ENV PATH /usr/lib/llvm-6.0/bin:$PATH
-
-# lib/as3 (ActionScript)
-RUN mkdir -p /usr/local/adobe/flex/4.6 && \
-      cd /usr/local/adobe/flex/4.6 && \
-      wget -q "http://download.macromedia.com/pub/flex/sdk/flex_sdk_4.6.zip" && \
-      unzip flex_sdk_4.6.zip
-ENV FLEX_HOME /usr/local/adobe/flex/4.6
-
-# TODO: "apt-get install" without "apt-get update" in the same "RUN" step can cause cache issues if modified later.
-# See https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#run
-RUN apt-get install -y --no-install-recommends \
-      `# C++ dependencies` \
-      libboost-all-dev \
-      libevent-dev \
-      libssl-dev \
-      qt5-default \
-      qtbase5-dev \
-      qtbase5-dev-tools
-
-ENV SBCL_VERSION 1.5.3
-RUN \
-      `# Common Lisp (sbcl) dependencies` \
-      curl --version && \
-      curl -o sbcl-${SBCL_VERSION}-x86-64-linux-binary.tar.bz2 -J -L https://sourceforge.net/projects/sbcl/files/sbcl/${SBCL_VERSION}/sbcl-${SBCL_VERSION}-x86-64-linux-binary.tar.bz2/download?use_mirror=managedway# && \
-      tar xjf sbcl-${SBCL_VERSION}-x86-64-linux-binary.tar.bz2 && \
-      cd sbcl-${SBCL_VERSION}-x86-64-linux && \
-      ./install.sh && \
-      sbcl --version && \
-      cd .. && \
-      rm -rf sbcl*
-
-ENV D_VERSION     2.087.0
-ENV DMD_DEB       dmd_2.087.0-0_amd64.deb
-RUN \
-      `# D dependencies` \
-      wget -q http://downloads.dlang.org/releases/2.x/${D_VERSION}/${DMD_DEB} && \
-      dpkg --install ${DMD_DEB} && \
-      rm -f ${DMD_DEB} && \
-      mkdir -p /usr/include/dmd/druntime/import/deimos /usr/include/dmd/druntime/import/C && \
-      git clone -b 'v2.0.2+2.0.16' https://github.com/D-Programming-Deimos/libevent.git deimos-libevent-2.0 && \
-      mv deimos-libevent-2.0/deimos/* /usr/include/dmd/druntime/import/deimos/ && \
-      mv deimos-libevent-2.0/C/* /usr/include/dmd/druntime/import/C/ && \
-      rm -rf deimos-libevent-2.0 && \
-      git clone -b 'v2.0.0+1.1.0h' https://github.com/D-Programming-Deimos/openssl.git deimos-openssl-1.1.0h && \
-      mv deimos-openssl-1.1.0h/deimos/* /usr/include/dmd/druntime/import/deimos/ && \
-      mv deimos-openssl-1.1.0h/C/* /usr/include/dmd/druntime/import/C/ && \
-      rm -rf deimos-openssl-1.1.0h
-
-ENV DART_VERSION 2.7.2-1
-RUN apt-get install -y --no-install-recommends \
-      `# Dart dependencies` \
-      dart=$DART_VERSION
-ENV PATH /usr/lib/dart/bin:$PATH
-
-RUN apt-get install -y --no-install-recommends \
-      `# dotnet core dependencies` \
-      dotnet-sdk-7.0 \
-      dotnet-runtime-7.0 \
-      aspnetcore-runtime-7.0 \
-      dotnet-apphost-pack-7.0
-
-# Erlang dependencies
-ARG ERLANG_OTP_VERSION=23.3.4.11
-ARG ERLANG_REBAR_VERSION=3.18.0
-RUN apt-get update && apt-get install -y --no-install-recommends libncurses5-dev && \
-      curl -ssLo /usr/local/bin/kerl https://raw.githubusercontent.com/kerl/kerl/master/kerl && chmod +x /usr/local/bin/kerl && \
-      kerl build $ERLANG_OTP_VERSION && kerl install $ERLANG_OTP_VERSION /usr/local/lib/otp/ && . /usr/local/lib/otp/activate && \
-      curl -ssLo /usr/local/bin/rebar3 https://github.com/erlang/rebar3/releases/download/${ERLANG_REBAR_VERSION}/rebar3 && chmod +x /usr/local/bin/rebar3 && \
-      rebar3 --version
-ENV PATH /usr/local/lib/otp/bin:$PATH
-
-RUN apt-get install -y --no-install-recommends \
-      `# GlibC dependencies` \
-      libglib2.0-dev
-
-# golang
-ENV GOLANG_VERSION 1.19.5
-ENV GOLANG_DOWNLOAD_URL https://go.dev/dl/go$GOLANG_VERSION.linux-amd64.tar.gz
-ENV GOLANG_DOWNLOAD_SHA256 36519702ae2fd573c9869461990ae550c8c0d955cd28d2827a6b159fda81ff95
-RUN curl -fsSL "$GOLANG_DOWNLOAD_URL" -o golang.tar.gz && \
-      echo "$GOLANG_DOWNLOAD_SHA256  golang.tar.gz" | sha256sum -c - && \
-      tar -C /usr/local -xzf golang.tar.gz && \
-      ln -s /usr/local/go/bin/go /usr/local/bin && \
-      rm golang.tar.gz
-
-RUN apt-get install -y --no-install-recommends \
-      `# Haxe dependencies` \
-      haxe \
-      neko \
-      neko-dev && \
-      haxelib setup --always /usr/share/haxe/lib && \
-      haxelib install --always hxcpp 2>&1 > /dev/null
-
-ENV GRADLE_VERSION="8.4"
-RUN apt-get install -y --no-install-recommends \
-      `# Java dependencies` \
-      ant \
-      ant-optional \
-      maven \
-      openjdk-17-jdk-headless && \
-      `# Gradle` \
-      wget https://services.gradle.org/distributions/gradle-$GRADLE_VERSION-bin.zip -q -O /tmp/gradle-$GRADLE_VERSION-bin.zip && \
-      (echo "3e1af3ae886920c3ac87f7a91f816c0c7c436f276a6eefdb3da152100fef72ae  /tmp/gradle-$GRADLE_VERSION-bin.zip" | sha256sum -c -) && \
-      unzip -d /tmp /tmp/gradle-$GRADLE_VERSION-bin.zip && \
-      mv /tmp/gradle-$GRADLE_VERSION /usr/local/gradle && \
-      ln -s /usr/local/gradle/bin/gradle /usr/local/bin
-
-RUN apt-get install -y --no-install-recommends \
-      `# Lua dependencies` \
-      lua5.2 \
-      lua5.2-dev
-# https://bugs.launchpad.net/ubuntu/+source/lua5.3/+bug/1707212
-# lua5.3 does not install alternatives!
-# need to update our luasocket code, lua doesn't have luaL_openlib any more
-
-RUN apt-get install -y --no-install-recommends \
-      `# Node.js dependencies` \
-      nodejs
-
-# Test dependencies for running puppeteer
-RUN apt-get install -y --no-install-recommends \
-      `# JS dependencies` \
-      libxss1 \
-      libxtst6
-
-RUN apt-get install -y --no-install-recommends \
-      `# OCaml dependencies` \
-      ocaml \
-      opam && \
-      opam init --yes && \
-      opam install --yes oasis
-
-RUN apt-get install -y --no-install-recommends \
-      `# Perl dependencies` \
-      libbit-vector-perl \
-      libclass-accessor-class-perl \
-      libcrypt-ssleay-perl \
-      libio-socket-ssl-perl \
-      libnet-ssleay-perl \
-      libtest-exception-perl
-
-RUN apt-get install -y --no-install-recommends \
-      `# Php dependencies` \
-      php \
-      php-cli \
-      php-dev \
-      php-json \
-      php-pear \
-      php-mbstring \
-      php-xml \
-      re2c \
-      composer
-
-RUN pecl install xdebug-3.1.1 && \
-      echo "zend_extension=xdebug.so" > /etc/php/7.2/cli/conf.d/20-xdebug.ini
-
-RUN apt-get install -y --no-install-recommends \
-      `# Python dependencies` \
-      python-all \
-      python-all-dbg \
-      python-all-dev \
-      python-ipaddress \
-      python-pip \
-      python-setuptools \
-      python-six \
-      python-tornado \
-      python-twisted \
-      python-wheel \
-      python-zope.interface && \
-      pip install --upgrade backports.ssl_match_hostname
-
-RUN apt-get install -y --no-install-recommends \
-      `# Python3 dependencies` \
-      python3-all \
-      python3-all-dbg \
-      python3-all-dev \
-      python3-pip \
-      python3-setuptools \
-      python3-six \
-      python3-tornado \
-      python3-twisted \
-      python3-wheel \
-      python3-zope.interface
-
-RUN apt-get install -y --no-install-recommends \
-      `# Ruby dependencies` \
-      ruby \
-      ruby-dev \
-      ruby-bundler
-
-# Rust dependencies
-RUN curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain 1.65.0 -y
-ENV PATH /root/.cargo/bin:$PATH
-
-# Swift on Linux for cross tests
-RUN apt-get install -yq \
-      libedit-dev \
-      libz3-dev \
-      libpython-dev \
-      libxml2-dev && \
-      cd / && \
-      wget --quiet https://download.swift.org/swift-5.7-release/ubuntu1804/swift-5.7-RELEASE/swift-5.7-RELEASE-ubuntu18.04.tar.gz && \
-      tar xf swift-5.7-RELEASE-ubuntu18.04.tar.gz && \
-      mv swift-5.7-RELEASE-ubuntu18.04 /usr/share/swift && \
-      rm swift-5.7-RELEASE-ubuntu18.04.tar.gz
-
-ENV PATH /usr/share/swift/usr/bin:$PATH
-RUN swift --version
-
-# Locale(s) for cpp unit tests
-RUN apt-get install -y --no-install-recommends \
-      `# Locale dependencies` \
-      locales && \
-      locale-gen en_US.UTF-8 && \
-      locale-gen de_DE.UTF-8 && \
-      update-locale
-
-RUN apt-get install -y --no-install-recommends \
-      `# Static Code Analysis dependencies` \
-      cppcheck \
-      sloccount && \
-      pip install flake8
-
-# NOTE: this does not reduce the image size but adds an additional layer.
-# # Clean up
-# RUN rm -rf /var/cache/apt/* && \
-#     rm -rf /var/lib/apt/lists/* && \
-#     rm -rf /tmp/* && \
-#     rm -rf /var/tmp/*
-
-ARG user=build
-ARG group=build
-ARG uid=1000
-ARG gid=1000
-
-RUN apt-get install -y --no-install-recommends sudo && \
-    echo "Running with: UID: ${uid}, User: ${user}, GID: ${gid}, Group: ${group}" && \
-    if [ -z `cat /etc/group | grep "${group}:"` ]; then addgroup --gid ${gid} ${group}; fi && \
-    adduser --uid ${uid} --gid ${gid} --shell /bin/bash ${user} --disabled-password -q --gecos "" && \
-    echo "${user} ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
-
-ENV THRIFT_ROOT /thrift
-RUN mkdir -p $THRIFT_ROOT/src && \
-    chown -R ${uid}:${uid} $THRIFT_ROOT/
-COPY Dockerfile $THRIFT_ROOT/
-WORKDIR $THRIFT_ROOT/src
-
-USER ${user}
diff --git a/build/docker/old/ubuntu-disco/Dockerfile b/build/docker/old/ubuntu-disco/Dockerfile
deleted file mode 100644
index 39642cf..0000000
--- a/build/docker/old/ubuntu-disco/Dockerfile
+++ /dev/null
@@ -1,296 +0,0 @@
-# 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.
-
-#
-# Apache Thrift Docker build environment for Ubuntu Disco
-# with some updated packages.
-#
-
-FROM buildpack-deps:disco-scm
-MAINTAINER Apache Thrift <dev@thrift.apache.org>
-ENV DEBIAN_FRONTEND noninteractive
-
-### Add apt repos
-
-RUN apt-get update && \
-      apt-get dist-upgrade -y && \
-      apt-get install -y --no-install-recommends \
-      apt \
-      apt-transport-https \
-      apt-utils \
-      curl \
-      dirmngr \
-      software-properties-common \
-      wget
-
-# Dart
-RUN curl https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - && \
-      curl https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list > \
-      /etc/apt/sources.list.d/dart_stable.list
-
-# dotnet (netcore)
-RUN curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > /etc/apt/trusted.gpg.d/microsoft.gpg && \
-      wget -q -O /etc/apt/sources.list.d/microsoft-prod.list https://packages.microsoft.com/config/ubuntu/18.04/prod.list && \
-      chown root:root /etc/apt/trusted.gpg.d/microsoft.gpg && \
-      chown root:root /etc/apt/sources.list.d/microsoft-prod.list
-
-# erlang
-RUN wget -O- https://packages.erlang-solutions.com/ubuntu/erlang_solutions.asc | apt-key add - && \
-      echo "deb https://packages.erlang-solutions.com/ubuntu disco contrib" | tee /etc/apt/sources.list.d/erlang.list
-
-# node.js
-RUN curl -sL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - && \
-      echo "deb https://deb.nodesource.com/node_10.x disco main" | tee /etc/apt/sources.list.d/nodesource.list
-
-### install general dependencies
-RUN apt-get update && apt-get install -y --no-install-recommends \
-      `# General dependencies` \
-      bash-completion \
-      bison \
-      build-essential \
-      clang \
-      cmake \
-      debhelper \
-      flex \
-      gdb \
-      libasound2 \
-      libatk-bridge2.0-0 \
-      libgtk-3-0 \
-      llvm \
-      ninja-build \
-      pkg-config \
-      unzip \
-      valgrind \
-      vim
-ENV PATH /usr/lib/llvm-6.0/bin:$PATH
-
-# lib/as3 (ActionScript)
-RUN mkdir -p /usr/local/adobe/flex/4.6 && \
-      cd /usr/local/adobe/flex/4.6 && \
-      wget -q "http://download.macromedia.com/pub/flex/sdk/flex_sdk_4.6.zip" && \
-      unzip flex_sdk_4.6.zip
-ENV FLEX_HOME /usr/local/adobe/flex/4.6
-
-RUN apt-get install -y --no-install-recommends \
-      `# C++ dependencies` \
-      libboost-all-dev \
-      libevent-dev \
-      libssl-dev \
-      qt5-default \
-      qtbase5-dev \
-      qtbase5-dev-tools
-
-ENV SBCL_VERSION 1.5.3
-RUN \
-      `# Common Lisp (sbcl) dependencies` \
-      curl --version && \
-      curl -o sbcl-${SBCL_VERSION}-x86-64-linux-binary.tar.bz2 -J -L https://sourceforge.net/projects/sbcl/files/sbcl/${SBCL_VERSION}/sbcl-${SBCL_VERSION}-x86-64-linux-binary.tar.bz2/download?use_mirror=managedway# && \
-      tar xjf sbcl-${SBCL_VERSION}-x86-64-linux-binary.tar.bz2 && \
-      cd sbcl-${SBCL_VERSION}-x86-64-linux && \
-      ./install.sh && \
-      sbcl --version && \
-      cd .. && \
-      rm -rf sbcl*
-
-ENV D_VERSION     2.087.0
-ENV DMD_DEB       dmd_2.087.0-0_amd64.deb
-RUN \
-      `# D dependencies` \
-      wget -q http://downloads.dlang.org/releases/2.x/${D_VERSION}/${DMD_DEB} && \
-      dpkg --install ${DMD_DEB} && \
-      rm -f ${DMD_DEB} && \
-      mkdir -p /usr/include/dmd/druntime/import/deimos /usr/include/dmd/druntime/import/C && \
-      git clone -b 'v2.0.2+2.0.16' https://github.com/D-Programming-Deimos/libevent.git deimos-libevent-2.0 && \
-      mv deimos-libevent-2.0/deimos/* /usr/include/dmd/druntime/import/deimos/ && \
-      mv deimos-libevent-2.0/C/* /usr/include/dmd/druntime/import/C/ && \
-      rm -rf deimos-libevent-2.0 && \
-      git clone -b 'v2.0.0+1.1.0h' https://github.com/D-Programming-Deimos/openssl.git deimos-openssl-1.1.0h && \
-      mv deimos-openssl-1.1.0h/deimos/* /usr/include/dmd/druntime/import/deimos/ && \
-      mv deimos-openssl-1.1.0h/C/* /usr/include/dmd/druntime/import/C/ && \
-      rm -rf deimos-openssl-1.1.0h
-
-ENV DART_VERSION 2.7.2-1
-RUN apt-get install -y --no-install-recommends \
-      `# Dart dependencies` \
-      dart=$DART_VERSION
-ENV PATH /usr/lib/dart/bin:$PATH
-
-RUN apt-get install -y --no-install-recommends \
-      `# dotnet core dependencies` \
-      dotnet-sdk-8.0 \
-      dotnet-runtime-8.0 \
-      aspnetcore-runtime-8.0 \
-      dotnet-apphost-pack-8.0
-
-RUN apt-get install -y --no-install-recommends \
-      `# Erlang dependencies` \
-      erlang && \
-      wget https://s3.amazonaws.com/rebar3/rebar3 -O /usr/bin/rebar3 && \
-      chmod 755 /usr/bin/rebar3 && \
-      rebar3 --version
-
-RUN apt-get install -y --no-install-recommends \
-      `# GlibC dependencies` \
-      libglib2.0-dev
-
-# golang
-ENV GOLANG_VERSION 1.19
-ENV GOLANG_DOWNLOAD_URL https://go.dev/dl/go$GOLANG_VERSION.linux-amd64.tar.gz
-ENV GOLANG_DOWNLOAD_SHA256 464b6b66591f6cf055bc5df90a9750bf5fbc9d038722bb84a9d56a2bea974be6
-RUN curl -fsSL "$GOLANG_DOWNLOAD_URL" -o golang.tar.gz && \
-      echo "$GOLANG_DOWNLOAD_SHA256  golang.tar.gz" | sha256sum -c - && \
-      tar -C /usr/local -xzf golang.tar.gz && \
-      ln -s /usr/local/go/bin/go /usr/local/bin && \
-      rm golang.tar.gz
-
-RUN apt-get install -y --no-install-recommends \
-      `# Haxe dependencies` \
-      haxe \
-      neko \
-      neko-dev && \
-      haxelib setup --always /usr/share/haxe/lib && \
-      haxelib install --always hxcpp 2>&1 > /dev/null
-
-ENV GRADLE_VERSION="8.4"
-RUN apt-get install -y --no-install-recommends \
-      `# Java dependencies` \
-      ant \
-      ant-optional \
-      maven \
-      openjdk-11-jdk-headless && \
-      `# Gradle` \
-      wget https://services.gradle.org/distributions/gradle-$GRADLE_VERSION-bin.zip -q -O /tmp/gradle-$GRADLE_VERSION-bin.zip && \
-      (echo "3e1af3ae886920c3ac87f7a91f816c0c7c436f276a6eefdb3da152100fef72ae  /tmp/gradle-$GRADLE_VERSION-bin.zip" | sha256sum -c -) && \
-      unzip -d /tmp /tmp/gradle-$GRADLE_VERSION-bin.zip && \
-      mv /tmp/gradle-$GRADLE_VERSION /usr/local/gradle && \
-      ln -s /usr/local/gradle/bin/gradle /usr/local/bin
-
-RUN apt-get install -y --no-install-recommends \
-      `# Lua dependencies` \
-      lua5.2 \
-      lua5.2-dev
-# https://bugs.launchpad.net/ubuntu/+source/lua5.3/+bug/1707212
-# lua5.3 does not install alternatives!
-# need to update our luasocket code, lua doesn't have luaL_openlib any more
-
-RUN apt-get install -y --no-install-recommends \
-      `# Node.js dependencies` \
-      nodejs
-
-# Test dependencies for running puppeteer
-RUN apt-get install -y --no-install-recommends \
-      `# JS dependencies` \
-      libxss1 \
-      libxtst6
-
-# does not work on disco?
-# RUN apt-get install -y --no-install-recommends \
-# `# OCaml dependencies` \
-#       ocaml \
-#       opam && \
-#     opam init --yes && \
-#     opam install --yes oasis
-
-RUN apt-get install -y --no-install-recommends \
-      `# Perl dependencies` \
-      libbit-vector-perl \
-      libclass-accessor-class-perl \
-      libcrypt-ssleay-perl \
-      libio-socket-ssl-perl \
-      libnet-ssleay-perl \
-      libtest-exception-perl
-
-RUN apt-get install -y --no-install-recommends \
-      `# Php dependencies` \
-      php \
-      php-cli \
-      php-dev \
-      php-json \
-      php-pear \
-      re2c \
-      composer
-
-RUN apt-get install -y --no-install-recommends \
-      `# Python dependencies` \
-      python-all \
-      python-all-dbg \
-      python-all-dev \
-      python-ipaddress \
-      python-pip \
-      python-setuptools \
-      python-six \
-      python-tornado \
-      python-twisted \
-      python-wheel \
-      python-zope.interface && \
-      pip install --upgrade backports.ssl_match_hostname
-
-RUN apt-get install -y --no-install-recommends \
-      `# Python3 dependencies` \
-      python3-all \
-      python3-all-dbg \
-      python3-all-dev \
-      python3-pip \
-      python3-setuptools \
-      python3-six \
-      python3-tornado \
-      python3-twisted \
-      python3-wheel \
-      python3-zope.interface
-
-RUN apt-get install -y --no-install-recommends \
-      `# Ruby dependencies` \
-      ruby \
-      ruby-dev \
-      ruby-bundler
-
-# Rust dependencies
-RUN curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain 1.65.0 -y
-ENV PATH /root/.cargo/bin:$PATH
-
-# Swift on Linux for cross tests
-# does not work on disco
-# RUN cd / && \
-#     wget --quiet https://swift.org/builds/swift-4.2.1-release/ubuntu1804/swift-4.2.1-RELEASE/swift-4.2.1-RELEASE-ubuntu18.04.tar.gz && \
-#     tar xf swift-4.2.1-RELEASE-ubuntu18.04.tar.gz --strip-components=1 && \
-#     rm swift-4.2.1-RELEASE-ubuntu18.04.tar.gz && \
-#     swift --version
-
-# Locale(s) for cpp unit tests
-RUN apt-get install -y --no-install-recommends \
-      `# Locale dependencies` \
-      locales && \
-      locale-gen en_US.UTF-8 && \
-      locale-gen de_DE.UTF-8 && \
-      update-locale
-
-# cppcheck-1.82 has a nasty cpp parser bug, so we're using something newer
-# don't need this on disco, nobody uses it
-# RUN apt-get install -y --no-install-recommends \
-# `# Static Code Analysis dependencies` \
-#       cppcheck \
-#       sloccount && \
-#     pip install flake8 && \
-#     wget -q "https://launchpad.net/ubuntu/+source/cppcheck/1.83-2/+build/14874703/+files/cppcheck_1.83-2_amd64.deb" && \
-#     dpkg -i cppcheck_1.83-2_amd64.deb && \
-#     rm cppcheck_1.83-2_amd64.deb
-
-# Clean up
-RUN rm -rf /var/cache/apt/* && \
-      rm -rf /var/lib/apt/lists/* && \
-      rm -rf /tmp/* && \
-      rm -rf /var/tmp/*
-
-ENV THRIFT_ROOT /thrift
-RUN mkdir -p $THRIFT_ROOT/src
-COPY Dockerfile $THRIFT_ROOT/
-WORKDIR $THRIFT_ROOT/src
diff --git a/build/docker/old/ubuntu-trusty/Dockerfile b/build/docker/old/ubuntu-trusty/Dockerfile
deleted file mode 100644
index 89f683e..0000000
--- a/build/docker/old/ubuntu-trusty/Dockerfile
+++ /dev/null
@@ -1,235 +0,0 @@
-# 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.
-
-#
-# Apache Thrift Docker build environment for Ubuntu Trusty
-# Using all stock Ubuntu Trusty packaging except for:
-# - d: does not come with Ubuntu so we're installing 2.070.0
-# - dart: does not come with Ubuntu so we're installing 1.20.1
-# - dotnetcore, disabled because netcore is for 1.0.0-preview and 2.0.0 is out
-# - haxe, disabled because the distro comes with 3.0.0 and it cores while installing
-# - node.js, disabled because it is at 0.10.0 in the distro which is too old (need 4+)
-# - ocaml, disabled because it fails to install properly
-#
-
-FROM buildpack-deps:trusty-scm
-MAINTAINER Apache Thrift <dev@thrift.apache.org>
-ENV DEBIAN_FRONTEND noninteractive
-
-### Add apt repos
-
-RUN apt-get update && \
-    apt-get dist-upgrade -y && \
-    apt-get install -y --no-install-recommends \
-      apt \
-      apt-transport-https \
-      apt-utils \
-      curl \
-      dirmngr \
-      software-properties-common \
-      wget
-
-# D
-RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EBCF975E5BA24D5E && \
-        wget http://master.dl.sourceforge.net/project/d-apt/files/d-apt.list -O /etc/apt/sources.list.d/d-apt.list && \
-        wget -qO - https://dlang.org/d-keyring.gpg | apt-key add -
-
-# Dart
-RUN curl https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - && \
-        curl https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list > \
-          /etc/apt/sources.list.d/dart_stable.list
-
-RUN apt-get update && apt-get install -y --no-install-recommends \
-`# General dependencies` \
-      bash-completion \
-      bison \
-      build-essential \
-      clang \
-      cmake \
-      debhelper \
-      flex \
-      gdb \
-      llvm \
-      ninja-build \
-      pkg-config \
-      valgrind \
-      vim
-ENV PATH /usr/lib/llvm-3.8/bin:$PATH
-
-RUN apt-get install -y --no-install-recommends \
-`# C++ dependencies` \
-      libboost-all-dev \
-      libevent-dev \
-      libssl-dev \
-      qt5-default \
-      qtbase5-dev \
-      qtbase5-dev-tools
-
-RUN apt-get install -y --no-install-recommends \
-`# D dependencies` \
-      dmd-bin=2.070.2-0 \
-      libphobos2-dev=2.070.2-0 \
-      dub \
-      dfmt \
-      dscanner \
-      xdg-utils
-RUN mkdir -p /usr/include/dmd/druntime/import/deimos /usr/include/dmd/druntime/import/C && \
-    curl -sSL https://github.com/D-Programming-Deimos/libevent/archive/master.tar.gz| tar xz && \
-    mv libevent-master/deimos/* /usr/include/dmd/druntime/import/deimos/ && \
-    mv libevent-master/C/* /usr/include/dmd/druntime/import/C/ && \
-    rm -rf libevent-master
-RUN curl -sSL https://github.com/D-Programming-Deimos/openssl/archive/master.tar.gz| tar xz && \
-    mv openssl-master/deimos/* /usr/include/dmd/druntime/import/deimos/ && \
-    mv openssl-master/C/* /usr/include/dmd/druntime/import/C/ && \
-    rm -rf openssl-master
-
-RUN apt-get install -y --no-install-recommends \
-`# Dart dependencies` \
-      dart=1.20.1-1
-ENV PATH /usr/lib/dart/bin:$PATH
-
-RUN apt-get install -y --no-install-recommends \
-`# Erlang dependencies` \
-      erlang-base \
-      erlang-eunit \
-      erlang-dev \
-      erlang-tools \
-      rebar
-
-RUN apt-get install -y --no-install-recommends \
-`# GlibC dependencies` \
-      libglib2.0-dev
-
-# golang
-ENV GOLANG_VERSION 1.7.6
-ENV GOLANG_DOWNLOAD_URL https://golang.org/dl/go$GOLANG_VERSION.linux-amd64.tar.gz
-ENV GOLANG_DOWNLOAD_SHA256 ad5808bf42b014c22dd7646458f631385003049ded0bb6af2efc7f1f79fa29ea
-RUN curl -fsSL "$GOLANG_DOWNLOAD_URL" -o golang.tar.gz && \
-      echo "$GOLANG_DOWNLOAD_SHA256  golang.tar.gz" | sha256sum -c - && \
-      tar -C /usr/local -xzf golang.tar.gz && \
-      ln -s /usr/local/go/bin/go /usr/local/bin && \
-      rm golang.tar.gz
-
-# disabled because it cores while installing
-# RUN apt-get install -y --no-install-recommends \
-# `# Haxe dependencies` \
-#       haxe \
-#       neko \
-#       neko-dev && \
-#     haxelib setup /usr/share/haxe/lib && \
-#     haxelib install hxcpp 3.2.102
-
-RUN apt-get install -y --no-install-recommends \
-`# Java dependencies` \
-      ant \
-      ant-optional \
-      openjdk-7-jdk \
-      maven
-
-RUN apt-get install -y --no-install-recommends \
-`# Lua dependencies` \
-      lua5.1 \
-      lua5.1-dev
-
-# disabled because it is too old
-# RUN apt-get install -y --no-install-recommends \
-# `# Node.js dependencies` \
-#       nodejs \
-#       npm
-
-# disabled because it fails to install properly
-# RUN apt-get install -y --no-install-recommends \
-# `# OCaml dependencies` \
-#       ocaml \
-#       opam && \
-#     opam init --yes && \
-#     opam install --yes oasis
-
-RUN apt-get install -y --no-install-recommends \
-`# Perl dependencies` \
-      libbit-vector-perl \
-      libclass-accessor-class-perl \
-      libcrypt-ssleay-perl \
-      libio-socket-ssl-perl \
-      libnet-ssleay-perl
-
-RUN apt-get install -y --no-install-recommends \
-`# Php dependencies` \
-      php5 \
-      php5-cli \
-      php5-dev \
-      php-pear \
-      re2c && \
-      wget https://getcomposer.org/installer -O - -q | php -- --quiet --install-dir=/usr/local/bin/ --filename=composer
-
-RUN apt-get install -y --no-install-recommends \
-`# Python dependencies` \
-      python-all \
-      python-all-dbg \
-      python-all-dev \
-      python-pip \
-      python-setuptools \
-      python-six \
-      python-twisted \
-      python-wheel \
-      python-zope.interface \
-      python3-all \
-      python3-all-dbg \
-      python3-all-dev \
-      python3-pip \
-      python3-setuptools \
-      python3-six \
-      python3-wheel \
-      python3-zope.interface && \
-    pip install -U ipaddress backports.ssl_match_hostname tornado && \
-    pip3 install -U backports.ssl_match_hostname tornado
-# installing tornado by pip/pip3 instead of debian package
-# if we install the debian package, the build fails in py2
-
-RUN apt-get install -y --no-install-recommends \
-`# Ruby dependencies` \
-      ruby \
-      ruby-dev \
-      ruby-bundler
-RUN gem install bundler --no-ri --no-rdoc
-
-RUN apt-get install -y --no-install-recommends \
-`# Rust dependencies` \
-      cargo \
-      rustc
-
-RUN apt-get install -y --no-install-recommends \
-`# Static Code Analysis dependencies` \
-      cppcheck \
-      sloccount && \
-    pip install flake8
-
-# Install BouncyCastle provider to fix Java builds issues with JDK 7
-# Builds accessing repote repositories fail as seen here: https://github.com/travis-ci/travis-ci/issues/8503
-RUN apt-get install -y --no-install-recommends \
-`# BouncyCastle JCE Provider dependencies` \
-      libbcprov-java && \
-    ln -s /usr/share/java/bcprov.jar /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/ext/bcprov.jar && \
-    awk -F . -v OFS=. 'BEGIN{n=2}/^security\.provider/ {split($3, posAndEquals, "=");$3=n++"="posAndEquals[2];print;next} 1' /etc/java-7-openjdk/security/java.security > /tmp/java.security && \
-  echo "security.provider.1=org.bouncycastle.jce.provider.BouncyCastleProvider" >> /tmp/java.security && \
-  mv /tmp/java.security /etc/java-7-openjdk/security/java.security
-
-# Clean up
-RUN rm -rf /var/cache/apt/* && \
-    rm -rf /var/lib/apt/lists/* && \
-    rm -rf /tmp/* && \
-    rm -rf /var/tmp/*
-
-ENV THRIFT_ROOT /thrift
-RUN mkdir -p $THRIFT_ROOT/src
-COPY Dockerfile $THRIFT_ROOT/
-WORKDIR $THRIFT_ROOT/src
diff --git a/build/docker/old/ubuntu-xenial/Dockerfile b/build/docker/old/ubuntu-xenial/Dockerfile
deleted file mode 100644
index d9d87cc..0000000
--- a/build/docker/old/ubuntu-xenial/Dockerfile
+++ /dev/null
@@ -1,273 +0,0 @@
-# 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.
-
-#
-# Apache Thrift Docker build environment for Ubuntu Xenial
-# Using all stock Ubuntu Xenial packaging except for:
-# - d: does not come with Ubuntu so we're installing 2.087.0 for coverage
-# - dart: does not come with Ubuntu so we're installing 2.0.0-1 for coverage
-# - dotnet: does not come with Ubuntu
-# - go: Xenial comes with 1.6, but we need 1.10 or later
-# - nodejs: Xenial comes with 4.2.6 which exits LTS April 2018, so we're installing 10.x
-# - ocaml: causes stack overflow error, just started March 2018 not sure why
-#
-
-FROM buildpack-deps:xenial-scm
-MAINTAINER Apache Thrift <dev@thrift.apache.org>
-ENV DEBIAN_FRONTEND noninteractive
-
-### Add apt repos
-
-RUN apt-get update && \
-      apt-get dist-upgrade -y && \
-      apt-get install -y --no-install-recommends \
-      apt \
-      apt-transport-https \
-      apt-utils \
-      curl \
-      software-properties-common \
-      wget && \
-
-      # Dart
-      curl https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - && \
-      curl https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list > \
-      /etc/apt/sources.list.d/dart_stable.list && \
-
-      # dotnet (core)
-      curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > /etc/apt/trusted.gpg.d/microsoft.gpg && \
-      echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-xenial-prod xenial main" > \
-      /etc/apt/sources.list.d/dotnetdev.list && \
-
-      # node.js
-      curl -sL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add - && \
-      echo "deb https://deb.nodesource.com/node_10.x xenial main" | tee /etc/apt/sources.list.d/nodesource.list && \
-
-      # ruby 2.4
-      apt-add-repository ppa:brightbox/ruby-ng
-
-### install general dependencies
-RUN apt-get update && apt-get install -y --no-install-recommends \
-      `# General dependencies` \
-      bash-completion \
-      bison \
-      build-essential \
-      clang \
-      cmake \
-      debhelper \
-      flex \
-      gdb \
-      llvm \
-      ninja-build \
-      pkg-config \
-      valgrind \
-      vim
-ENV PATH /usr/lib/llvm-3.8/bin:$PATH
-
-### languages
-
-# TODO: "apt-get install" without "apt-get update" in the same "RUN" step can cause cache issues if modified later.
-# See https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#run
-RUN apt-get install -y --no-install-recommends \
-      `# C++ dependencies` \
-      libboost-dev \
-      libboost-filesystem-dev \
-      libboost-program-options-dev \
-      libboost-system-dev \
-      libboost-test-dev \
-      libboost-thread-dev \
-      libevent-dev \
-      libssl-dev \
-      qt5-default \
-      qtbase5-dev \
-      qtbase5-dev-tools
-
-ENV D_VERSION     2.087.0
-ENV DMD_DEB       dmd_2.087.0-0_amd64.deb
-RUN \
-      `# D dependencies` \
-      wget -q http://downloads.dlang.org/releases/2.x/${D_VERSION}/${DMD_DEB} && \
-      dpkg --install ${DMD_DEB} && \
-      rm -f ${DMD_DEB} && \
-      mkdir -p /usr/include/dmd/druntime/import/deimos /usr/include/dmd/druntime/import/C && \
-      git clone -b 'v2.0.2+2.0.16' https://github.com/D-Programming-Deimos/libevent.git deimos-libevent-2.0 && \
-      mv deimos-libevent-2.0/deimos/* /usr/include/dmd/druntime/import/deimos/ && \
-      mv deimos-libevent-2.0/C/* /usr/include/dmd/druntime/import/C/ && \
-      rm -rf deimos-libevent-2.0 && \
-      git clone -b 'v1.1.6+1.0.1g' https://github.com/D-Programming-Deimos/openssl.git deimos-openssl-1.0.1g && \
-      mv deimos-openssl-1.0.1g/deimos/* /usr/include/dmd/druntime/import/deimos/ && \
-      mv deimos-openssl-1.0.1g/C/* /usr/include/dmd/druntime/import/C/ && \
-      rm -rf deimos-openssl-1.0.1g
-
-ENV DART_VERSION 2.7.2-1
-RUN apt-get install -y --no-install-recommends \
-      `# Dart dependencies` \
-      dart=$DART_VERSION
-ENV PATH /usr/lib/dart/bin:$PATH
-
-RUN apt-get install -y --no-install-recommends \
-      `# dotnet core dependencies` \
-      dotnet-sdk-8.0 \
-      dotnet-runtime-8.0 \
-      aspnetcore-runtime-8.0 \
-      dotnet-apphost-pack-8.0
-
-# Erlang dependencies
-ARG ERLANG_OTP_VERSION=20.3.8.9
-ARG ERLANG_REBAR_VERSION=3.13.2
-RUN apt-get update && apt-get install -y --no-install-recommends automake libncurses5-dev && \
-      curl https://raw.githubusercontent.com/kerl/kerl/master/kerl -o /usr/local/bin/kerl && chmod +x /usr/local/bin/kerl && \
-      kerl build $ERLANG_OTP_VERSION && kerl install $ERLANG_OTP_VERSION /usr/local/lib/otp/ && . /usr/local/lib/otp/activate && \
-      curl https://s3.amazonaws.com/rebar3/rebar3 -o /usr/local/bin/rebar3 && chmod +x /usr/local/bin/rebar3 && \
-      curl -ssLo /usr/local/bin/rebar3 https://github.com/erlang/rebar3/releases/download/${ERLANG_REBAR_VERSION}/rebar3 && chmod +x /usr/local/bin/rebar3 && \
-      rebar3 --version
-ENV PATH /usr/local/lib/otp/bin:$PATH
-
-RUN apt-get install -y --no-install-recommends \
-      `# GlibC dependencies` \
-      libglib2.0-dev
-
-# golang
-ENV GOLANG_VERSION 1.18.5
-ENV GOLANG_DOWNLOAD_URL https://go.dev/dl/go$GOLANG_VERSION.linux-amd64.tar.gz
-ENV GOLANG_DOWNLOAD_SHA256 9e5de37f9c49942c601b191ac5fba404b868bfc21d446d6960acc12283d6e5f2
-RUN curl -fsSL "$GOLANG_DOWNLOAD_URL" -o golang.tar.gz && \
-      echo "$GOLANG_DOWNLOAD_SHA256  golang.tar.gz" | sha256sum -c - && \
-      tar -C /usr/local -xzf golang.tar.gz && \
-      ln -s /usr/local/go/bin/go /usr/local/bin && \
-      rm golang.tar.gz
-
-RUN apt-get install -y --no-install-recommends \
-      `# Haxe dependencies` \
-      haxe \
-      neko \
-      neko-dev \
-      libneko0 && \
-      haxelib setup --always /usr/share/haxe/lib && \
-      haxelib install --always hxcpp 3.4.64 2>&1 > /dev/null
-# note: hxcpp 3.4.185 (latest) no longer ships static libraries, and caused a build failure
-
-ENV GRADLE_VERSION="8.4"
-RUN apt-get install -y --no-install-recommends \
-      `# Java dependencies` \
-      ant \
-      ant-optional \
-      openjdk-8-jdk \
-      maven \
-      unzip && \
-      `# Gradle` \
-      wget https://services.gradle.org/distributions/gradle-$GRADLE_VERSION-bin.zip -q -O /tmp/gradle-$GRADLE_VERSION-bin.zip && \
-      (echo "3e1af3ae886920c3ac87f7a91f816c0c7c436f276a6eefdb3da152100fef72ae  /tmp/gradle-$GRADLE_VERSION-bin.zip" | sha256sum -c -) && \
-      unzip -d /tmp /tmp/gradle-$GRADLE_VERSION-bin.zip && \
-      mv /tmp/gradle-$GRADLE_VERSION /usr/local/gradle && \
-      ln -s /usr/local/gradle/bin/gradle /usr/local/bin
-
-# disabled: same as ubuntu-bionic jobs
-# RUN apt-get install -y --no-install-recommends \
-# `# Lua dependencies` \
-#       lua5.2 \
-#       lua5.2-dev
-# https://bugs.launchpad.net/ubuntu/+source/lua5.3/+bug/1707212
-# lua5.3 does not install alternatives so stick with 5.2 here
-
-RUN apt-get install -y --no-install-recommends \
-      `# Node.js dependencies` \
-      nodejs
-
-# Test dependencies for running puppeteer
-RUN apt-get install -y --no-install-recommends \
-      `# JS dependencies` \
-      libxss1 \
-      libxtst6 \
-      libatk-bridge2.0-0 \
-      libgtk-3-0
-
-# THRIFT-4517: causes stack overflows; version too old; skip ocaml in xenial
-# RUN apt-get install -y --no-install-recommends \
-# `# OCaml dependencies` \
-#       ocaml \
-#       opam && \
-#     opam init --yes && \
-#     opam install --yes oasis
-
-RUN apt-get install -y --no-install-recommends \
-      `# Perl dependencies` \
-      libbit-vector-perl \
-      libclass-accessor-class-perl \
-      libcrypt-ssleay-perl \
-      libio-socket-ssl-perl \
-      libnet-ssleay-perl \
-      libtest-exception-perl
-
-RUN apt-get install -y --no-install-recommends \
-      `# Php dependencies` \
-      php7.0 \
-      php7.0-cli \
-      php7.0-dev \
-      php-json \
-      php-pear \
-      re2c \
-      composer
-
-RUN apt-get install -y --no-install-recommends \
-      `# Python dependencies` \
-      python-all \
-      python-all-dbg \
-      python-all-dev \
-      python-backports.ssl-match-hostname \
-      python-ipaddress \
-      python-pip \
-      python-setuptools \
-      python-six \
-      python-tornado \
-      python-twisted \
-      python-wheel \
-      python-zope.interface \
-      python3-all \
-      python3-all-dbg \
-      python3-all-dev \
-      python3-setuptools \
-      python3-six \
-      python3-tornado \
-      python3-twisted \
-      python3-wheel \
-      python3-zope.interface && \
-      pip install --upgrade backports.ssl_match_hostname
-
-RUN apt-get install -y --no-install-recommends \
-      `# Ruby dependencies` \
-      ruby2.4 \
-      ruby2.4-dev \
-      ruby-bundler
-
-# Rust dependencies
-RUN curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain 1.65.0 -y
-
-# Locale(s) for cpp unit tests
-RUN apt-get install -y --no-install-recommends \
-      `# Locale dependencies` \
-      locales && \
-      locale-gen en_US.UTF-8 && \
-      locale-gen de_DE.UTF-8 && \
-      update-locale
-
-# NOTE: this does not reduce the image size but adds an additional layer.
-# # Clean up
-# RUN rm -rf /var/cache/apt/* && \
-#     rm -rf /var/lib/apt/lists/* && \
-#     rm -rf /tmp/* && \
-#     rm -rf /var/tmp/*
-
-ENV DOTNET_CLI_TELEMETRY_OPTOUT 1
-ENV THRIFT_ROOT /thrift
-RUN mkdir -p $THRIFT_ROOT/src
-COPY Dockerfile $THRIFT_ROOT/
-WORKDIR $THRIFT_ROOT/src
