diff --git a/docker/bootstrap/Dockerfile.common b/docker/bootstrap/Dockerfile.common index 92ca899f712..54402e358ef 100644 --- a/docker/bootstrap/Dockerfile.common +++ b/docker/bootstrap/Dockerfile.common @@ -1,35 +1,22 @@ -FROM golang:1.13-stretch +FROM golang:1.13-buster # Install Vitess build dependencies RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ # TODO(mberlin): Group these to make it easier to understand which library actually requires them. - automake \ - bison \ - bzip2 \ + ant \ chromium \ curl \ + default-jdk \ + etcd \ g++ \ git \ - libgconf-2-4 \ - libtool \ make \ - openjdk-8-jdk \ + maven \ software-properties-common \ - virtualenv \ unzip \ - xvfb \ zip \ - libz-dev \ - ant \ && rm -rf /var/lib/apt/lists/* -# Install Maven 3.1+ -RUN mkdir -p /vt/src/vitess.io/vitess/dist && \ - cd /vt/src/vitess.io/vitess/dist && \ - curl -sL --connect-timeout 10 --retry 3 \ - http://www-us.apache.org/dist/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz | tar -xz && \ - mv apache-maven-3.3.9 maven - # Set up Vitess environment (equivalent to '. dev.env') ENV VTROOT /vt/src/vitess.io/vitess ENV VTDATAROOT /vt/vtdataroot diff --git a/docker/bootstrap/Dockerfile.mariadb b/docker/bootstrap/Dockerfile.mariadb index 19d5c9973d0..90d9dd1e201 100644 --- a/docker/bootstrap/Dockerfile.mariadb +++ b/docker/bootstrap/Dockerfile.mariadb @@ -2,7 +2,7 @@ FROM vitess/bootstrap:common # Install MariaDB 10 RUN for i in $(seq 1 10); do apt-key adv --no-tty --keyserver keys.gnupg.net --recv-keys 9334A25F8507EFA5 && break; done && \ - add-apt-repository 'deb http://repo.percona.com/apt stretch main' && \ + add-apt-repository 'deb http://repo.percona.com/apt buster main' && \ { \ echo debconf debconf/frontend select Noninteractive; \ echo percona-server-server-5.7 percona-server-server/root_password password 'unused'; \ diff --git a/docker/bootstrap/Dockerfile.mariadb103 b/docker/bootstrap/Dockerfile.mariadb103 index c2828ddd25d..5d15356f419 100644 --- a/docker/bootstrap/Dockerfile.mariadb103 +++ b/docker/bootstrap/Dockerfile.mariadb103 @@ -2,7 +2,7 @@ FROM vitess/bootstrap:common # Install MariaDB 10.3 RUN apt-key adv --no-tty --recv-keys --keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8 \ - && add-apt-repository 'deb [arch=amd64] http://ftp.osuosl.org/pub/mariadb/repo/10.3/debian stretch main' \ + && add-apt-repository 'deb [arch=amd64] http://ftp.osuosl.org/pub/mariadb/repo/10.3/debian buster main' \ && apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ mariadb-server-10.3 \ libmariadb-dev \ diff --git a/docker/bootstrap/Dockerfile.mysql56 b/docker/bootstrap/Dockerfile.mysql56 index 0cdb5ae84f2..46ee7b8553a 100644 --- a/docker/bootstrap/Dockerfile.mysql56 +++ b/docker/bootstrap/Dockerfile.mysql56 @@ -1,10 +1,16 @@ FROM vitess/bootstrap:common # Install MySQL 5.6 +# +# Unfortunately we need to keep the 'stretch' repo from Oracle as there's no official support +# for MySQL 5.6 for Debian Buster: https://bugs.mysql.com/bug.php?id=101055 +# +# I think it's fine as MySQL 5.6 will be EOL pretty soon (February 5, 2021) +# RUN for i in $(seq 1 10); do apt-key adv --no-tty --recv-keys --keyserver pool.sks-keyservers.net 8C718D3B5072E1F5 && break; done && \ add-apt-repository 'deb http://repo.mysql.com/apt/debian/ stretch mysql-5.6' && \ for i in $(seq 1 10); do apt-key adv --no-tty --keyserver keys.gnupg.net --recv-keys 9334A25F8507EFA5 && break; done && \ - echo 'deb http://repo.percona.com/apt stretch main' > /etc/apt/sources.list.d/percona.list && \ + echo 'deb http://repo.percona.com/apt buster main' > /etc/apt/sources.list.d/percona.list && \ { \ echo debconf debconf/frontend select Noninteractive; \ echo percona-server-server-5.6 percona-server-server/root_password password 'unused'; \ diff --git a/docker/bootstrap/Dockerfile.mysql57 b/docker/bootstrap/Dockerfile.mysql57 index 7e0c5f99f96..4889e74f4e1 100644 --- a/docker/bootstrap/Dockerfile.mysql57 +++ b/docker/bootstrap/Dockerfile.mysql57 @@ -3,9 +3,9 @@ FROM vitess/bootstrap:common # Install MySQL 5.7 RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gnupg dirmngr ca-certificates && \ for i in $(seq 1 10); do apt-key adv --no-tty --recv-keys --keyserver ha.pool.sks-keyservers.net 8C718D3B5072E1F5 && break; done && \ - add-apt-repository 'deb http://repo.mysql.com/apt/debian/ stretch mysql-5.7' && \ + add-apt-repository 'deb http://repo.mysql.com/apt/debian/ buster mysql-5.7' && \ for i in $(seq 1 10); do apt-key adv --no-tty --keyserver keys.gnupg.net --recv-keys 9334A25F8507EFA5 && break; done && \ - echo 'deb http://repo.percona.com/apt stretch main' > /etc/apt/sources.list.d/percona.list && \ + echo 'deb http://repo.percona.com/apt buster main' > /etc/apt/sources.list.d/percona.list && \ { \ echo debconf debconf/frontend select Noninteractive; \ echo percona-server-server-5.7 percona-server-server/root_password password 'unused'; \ diff --git a/docker/bootstrap/Dockerfile.mysql80 b/docker/bootstrap/Dockerfile.mysql80 index 0523a7847cc..543453e911a 100644 --- a/docker/bootstrap/Dockerfile.mysql80 +++ b/docker/bootstrap/Dockerfile.mysql80 @@ -2,9 +2,9 @@ FROM vitess/bootstrap:common # Install MySQL 8.0 RUN for i in $(seq 1 10); do apt-key adv --no-tty --recv-keys --keyserver ha.pool.sks-keyservers.net 8C718D3B5072E1F5 && break; done && \ - add-apt-repository 'deb http://repo.mysql.com/apt/debian/ stretch mysql-8.0' && \ + add-apt-repository 'deb http://repo.mysql.com/apt/debian/ buster mysql-8.0' && \ for i in $(seq 1 10); do apt-key adv --no-tty --keyserver keys.gnupg.net --recv-keys 9334A25F8507EFA5 && break; done && \ - echo 'deb http://repo.percona.com/apt stretch main' > /etc/apt/sources.list.d/percona.list && \ + echo 'deb http://repo.percona.com/apt buster main' > /etc/apt/sources.list.d/percona.list && \ { \ echo debconf debconf/frontend select Noninteractive; \ echo percona-server-server-8.0 percona-server-server/root_password password 'unused'; \ diff --git a/docker/bootstrap/Dockerfile.percona b/docker/bootstrap/Dockerfile.percona index 910d3be10b1..d2666c6b137 100644 --- a/docker/bootstrap/Dockerfile.percona +++ b/docker/bootstrap/Dockerfile.percona @@ -1,8 +1,19 @@ FROM vitess/bootstrap:common # Install Percona 5.6 +# +# Unfortunately we need to keep the 'stretch' repo from Percona as there's no official support +# for MySQL 5.6 for Debian Buster +# +# I think it's fine as MySQL 5.6 will be EOL pretty soon (February 5, 2021) +# +# Also, for the 'percona-xtrabackup-24' package we need to specificly target the +# 'buster' repository as the 'stretch' package requires 'libcurl3' that is not present +# in Debian Buster. +# RUN for i in $(seq 1 10); do apt-key adv --no-tty --keyserver keys.gnupg.net --recv-keys 9334A25F8507EFA5 && break; done && \ add-apt-repository 'deb http://repo.percona.com/apt stretch main' && \ + add-apt-repository 'deb http://repo.percona.com/apt buster main' && \ { \ echo debconf debconf/frontend select Noninteractive; \ echo percona-server-server-5.6 percona-server-server/root_password password 'unused'; \ @@ -10,7 +21,8 @@ RUN for i in $(seq 1 10); do apt-key adv --no-tty --keyserver keys.gnupg.net --r } | debconf-set-selections && \ apt-get update && \ apt-get install -y --no-install-recommends \ - percona-server-server-5.6 libperconaserverclient18.1-dev rsync libev4 percona-xtrabackup-24 && \ + percona-server-server-5.6 libperconaserverclient18.1-dev rsync libev4 && \ + apt-get install -y -t buster percona-xtrabackup-24 && \ rm -rf /var/lib/apt/lists/* # Bootstrap Vitess diff --git a/docker/bootstrap/Dockerfile.percona57 b/docker/bootstrap/Dockerfile.percona57 index 54c8477ffb6..4bac477d764 100644 --- a/docker/bootstrap/Dockerfile.percona57 +++ b/docker/bootstrap/Dockerfile.percona57 @@ -2,7 +2,7 @@ FROM vitess/bootstrap:common # Install Percona 5.7 RUN for i in $(seq 1 10); do apt-key adv --no-tty --keyserver keys.gnupg.net --recv-keys 9334A25F8507EFA5 && break; done && \ - add-apt-repository 'deb http://repo.percona.com/apt stretch main' && \ + add-apt-repository 'deb http://repo.percona.com/apt buster main' && \ { \ echo debconf debconf/frontend select Noninteractive; \ echo percona-server-server-5.7 percona-server-server/root_password password 'unused'; \ @@ -11,7 +11,7 @@ RUN for i in $(seq 1 10); do apt-key adv --no-tty --keyserver keys.gnupg.net --r apt-get update && \ apt-get install -y --no-install-recommends \ percona-server-server-5.7 \ - libperconaserverclient18.1-dev percona-xtrabackup-24 && \ + libperconaserverclient20-dev percona-xtrabackup-24 && \ rm -rf /var/lib/apt/lists/* # Bootstrap Vitess diff --git a/docker/bootstrap/Dockerfile.percona80 b/docker/bootstrap/Dockerfile.percona80 index 1ce9c52103f..d649416a6b6 100644 --- a/docker/bootstrap/Dockerfile.percona80 +++ b/docker/bootstrap/Dockerfile.percona80 @@ -2,7 +2,7 @@ FROM vitess/bootstrap:common # Install Percona 8.0 RUN for i in $(seq 1 10); do apt-key adv --no-tty --keyserver keys.gnupg.net --recv-keys 9334A25F8507EFA5 && break; done \ - && echo 'deb http://repo.percona.com/ps-80/apt stretch main' > /etc/apt/sources.list.d/percona.list && \ + && echo 'deb http://repo.percona.com/ps-80/apt buster main' > /etc/apt/sources.list.d/percona.list && \ { \ echo debconf debconf/frontend select Noninteractive; \ echo percona-server-server-8.0 percona-server-server/root_password password 'unused'; \ @@ -19,7 +19,7 @@ RUN for i in $(seq 1 10); do apt-key adv --no-tty --keyserver keys.gnupg.net --r rsync \ libev4 \ # && rm -f /etc/apt/sources.list.d/percona.list \ - && echo 'deb http://repo.percona.com/apt stretch main' > /etc/apt/sources.list.d/percona.list \ + && echo 'deb http://repo.percona.com/apt buster main' > /etc/apt/sources.list.d/percona.list \ # { \ # echo debconf debconf/frontend select Noninteractive; \ # echo percona-server-server-8.0 percona-server-server/root_password password 'unused'; \ diff --git a/docker/lite/Dockerfile.mariadb b/docker/lite/Dockerfile.mariadb index 2299fa0866f..1617d899fe2 100644 --- a/docker/lite/Dockerfile.mariadb +++ b/docker/lite/Dockerfile.mariadb @@ -30,7 +30,7 @@ USER vitess RUN make install PREFIX=/vt/install # Start over and build the final image. -FROM debian:stretch-slim +FROM debian:buster-slim # Install dependencies COPY docker/lite/install_dependencies.sh /vt/dist/install_dependencies.sh diff --git a/docker/lite/Dockerfile.mariadb103 b/docker/lite/Dockerfile.mariadb103 index 825035a66a6..079ab6ff4a7 100644 --- a/docker/lite/Dockerfile.mariadb103 +++ b/docker/lite/Dockerfile.mariadb103 @@ -30,7 +30,7 @@ USER vitess RUN make install PREFIX=/vt/install # Start over and build the final image. -FROM debian:stretch-slim +FROM debian:buster-slim # Install dependencies COPY docker/lite/install_dependencies.sh /vt/dist/install_dependencies.sh diff --git a/docker/lite/Dockerfile.mysql56 b/docker/lite/Dockerfile.mysql56 index a8d5a76de68..ec361bec520 100644 --- a/docker/lite/Dockerfile.mysql56 +++ b/docker/lite/Dockerfile.mysql56 @@ -30,7 +30,7 @@ USER vitess RUN make install PREFIX=/vt/install # Start over and build the final image. -FROM debian:stretch-slim +FROM debian:buster-slim # Install dependencies COPY docker/lite/install_dependencies.sh /vt/dist/install_dependencies.sh diff --git a/docker/lite/Dockerfile.mysql57 b/docker/lite/Dockerfile.mysql57 index 11013292b49..5ff2d21514d 100644 --- a/docker/lite/Dockerfile.mysql57 +++ b/docker/lite/Dockerfile.mysql57 @@ -30,7 +30,7 @@ USER vitess RUN make install PREFIX=/vt/install # Start over and build the final image. -FROM debian:stretch-slim +FROM debian:buster-slim # Install dependencies COPY docker/lite/install_dependencies.sh /vt/dist/install_dependencies.sh diff --git a/docker/lite/Dockerfile.mysql80 b/docker/lite/Dockerfile.mysql80 index 99752bf11b7..c395d24f37a 100644 --- a/docker/lite/Dockerfile.mysql80 +++ b/docker/lite/Dockerfile.mysql80 @@ -30,7 +30,7 @@ USER vitess RUN make install PREFIX=/vt/install # Start over and build the final image. -FROM debian:stretch-slim +FROM debian:buster-slim # Install dependencies COPY docker/lite/install_dependencies.sh /vt/dist/install_dependencies.sh diff --git a/docker/lite/Dockerfile.percona b/docker/lite/Dockerfile.percona index b93f0dffe4a..e0c5eac8a78 100644 --- a/docker/lite/Dockerfile.percona +++ b/docker/lite/Dockerfile.percona @@ -30,7 +30,7 @@ USER vitess RUN make install PREFIX=/vt/install # Start over and build the final image. -FROM debian:stretch-slim +FROM debian:buster-slim # Install dependencies COPY docker/lite/install_dependencies.sh /vt/dist/install_dependencies.sh diff --git a/docker/lite/Dockerfile.percona57 b/docker/lite/Dockerfile.percona57 index a1091434a88..e8cc430475c 100644 --- a/docker/lite/Dockerfile.percona57 +++ b/docker/lite/Dockerfile.percona57 @@ -30,7 +30,7 @@ USER vitess RUN make install PREFIX=/vt/install # Start over and build the final image. -FROM debian:stretch-slim +FROM debian:buster-slim # Install dependencies COPY docker/lite/install_dependencies.sh /vt/dist/install_dependencies.sh diff --git a/docker/lite/Dockerfile.percona80 b/docker/lite/Dockerfile.percona80 index dfa875a51db..0bb057d6ed2 100644 --- a/docker/lite/Dockerfile.percona80 +++ b/docker/lite/Dockerfile.percona80 @@ -30,7 +30,7 @@ USER vitess RUN make install PREFIX=/vt/install # Start over and build the final image. -FROM debian:stretch-slim +FROM debian:buster-slim # Install dependencies COPY docker/lite/install_dependencies.sh /vt/dist/install_dependencies.sh diff --git a/docker/lite/Dockerfile.testing b/docker/lite/Dockerfile.testing index 19214800013..523d50e3c77 100644 --- a/docker/lite/Dockerfile.testing +++ b/docker/lite/Dockerfile.testing @@ -30,7 +30,7 @@ USER vitess RUN make install-testing PREFIX=/vt/install # Start over and build the final image. -FROM debian:stretch-slim +FROM debian:buster-slim # Install dependencies COPY docker/lite/install_dependencies.sh /vt/dist/install_dependencies.sh diff --git a/docker/lite/install_dependencies.sh b/docker/lite/install_dependencies.sh index 61e1451a851..b9a05da3aa5 100755 --- a/docker/lite/install_dependencies.sh +++ b/docker/lite/install_dependencies.sh @@ -126,30 +126,30 @@ add_apt_key 9334A25F8507EFA5 # Add extra apt repositories for MySQL. case "${FLAVOR}" in mysql56) - echo 'deb http://repo.mysql.com/apt/debian/ stretch mysql-5.6' > /etc/apt/sources.list.d/mysql.list + echo 'deb http://repo.mysql.com/apt/debian/ buster mysql-5.6' > /etc/apt/sources.list.d/mysql.list ;; mysql57) - echo 'deb http://repo.mysql.com/apt/debian/ stretch mysql-5.7' > /etc/apt/sources.list.d/mysql.list + echo 'deb http://repo.mysql.com/apt/debian/ buster mysql-5.7' > /etc/apt/sources.list.d/mysql.list ;; mysql80) - echo 'deb http://repo.mysql.com/apt/debian/ stretch mysql-8.0' > /etc/apt/sources.list.d/mysql.list + echo 'deb http://repo.mysql.com/apt/debian/ buster mysql-8.0' > /etc/apt/sources.list.d/mysql.list ;; mariadb) - echo 'deb http://sfo1.mirrors.digitalocean.com/mariadb/repo/10.2/debian stretch main' > /etc/apt/sources.list.d/mariadb.list + echo 'deb http://sfo1.mirrors.digitalocean.com/mariadb/repo/10.2/debian buster main' > /etc/apt/sources.list.d/mariadb.list ;; mariadb103) - echo 'deb http://sfo1.mirrors.digitalocean.com/mariadb/repo/10.3/debian stretch main' > /etc/apt/sources.list.d/mariadb.list + echo 'deb http://sfo1.mirrors.digitalocean.com/mariadb/repo/10.3/debian buster main' > /etc/apt/sources.list.d/mariadb.list ;; esac # Add extra apt repositories for Percona Server and/or Percona XtraBackup. case "${FLAVOR}" in mysql56|mysql57|mysql80|percona|percona57) - echo 'deb http://repo.percona.com/apt stretch main' > /etc/apt/sources.list.d/percona.list + echo 'deb http://repo.percona.com/apt buster main' > /etc/apt/sources.list.d/percona.list ;; percona80) - echo 'deb http://repo.percona.com/apt stretch main' > /etc/apt/sources.list.d/percona.list - echo 'deb http://repo.percona.com/ps-80/apt stretch main' > /etc/apt/sources.list.d/percona80.list + echo 'deb http://repo.percona.com/apt buster main' > /etc/apt/sources.list.d/percona.list + echo 'deb http://repo.percona.com/ps-80/apt buster main' > /etc/apt/sources.list.d/percona80.list ;; esac diff --git a/docker/orchestrator/build.sh b/docker/orchestrator/build.sh index dbc8dfc464b..933854a664a 100755 --- a/docker/orchestrator/build.sh +++ b/docker/orchestrator/build.sh @@ -23,7 +23,7 @@ script="go get vitess.io/vitess/go/cmd/vtctlclient && \ go install github.com/openark/orchestrator/go/cmd/orchestrator" echo "Building orchestrator..." -docker run -ti --name=vt_orc_build golang:1.14.4-stretch bash -c "$script" +docker run -ti --name=vt_orc_build golang:1.14.4-buster bash -c "$script" docker cp vt_orc_build:/go/bin/orchestrator $tmpdir docker cp vt_orc_build:/go/bin/vtctlclient $tmpdir docker cp vt_orc_build:/go/src/github.com/openark/orchestrator/resources $tmpdir