summaryrefslogtreecommitdiff
path: root/build
diff options
context:
space:
mode:
authorAki Sukegawa <nsuke@apache.org>2022-03-07 00:28:26 -0500
committerAki Sukegawa <nsukeg@gmail.com>2022-03-08 16:06:00 -0500
commit7594da8d7ac8d3525aa736d8fef89e465c63533e (patch)
tree183d911c98dcc29714020a3384ee892ce0c7ab09 /build
parentd88d4f93b3390989bd47a43f3941ca7d576750f6 (diff)
downloadthrift-7594da8d7ac8d3525aa736d8fef89e465c63533e.tar.gz
THRIFT-5536 Fix cross language tests
Diffstat (limited to 'build')
-rw-r--r--build/docker/README.md2
-rw-r--r--build/docker/ubuntu-bionic/Dockerfile30
-rw-r--r--build/docker/ubuntu-xenial/Dockerfile30
3 files changed, 35 insertions, 27 deletions
diff --git a/build/docker/README.md b/build/docker/README.md
index f67647973..f07faaaef 100644
--- a/build/docker/README.md
+++ b/build/docker/README.md
@@ -176,7 +176,7 @@ Last updated: October 1, 2017
| d | 2.087.0 | 2.087.0 | |
| dart | 2.0.0 | 2.4.0 | |
| delphi | | | Not in CI |
-| erlang | 18.3 | 22.0 | |
+| erlang | OTP-18 | OTP-23 | |
| go | 1.15.10 | 1.16.2 | |
| haxe | 3.2.1 | 3.4.4 | THRIFT-4352: avoid 3.4.2 |
| java | 1.8.0_191 | 11.0.3 | |
diff --git a/build/docker/ubuntu-bionic/Dockerfile b/build/docker/ubuntu-bionic/Dockerfile
index 08c45df79..0e11d2ac6 100644
--- a/build/docker/ubuntu-bionic/Dockerfile
+++ b/build/docker/ubuntu-bionic/Dockerfile
@@ -43,10 +43,6 @@ RUN curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > /et
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 bionic 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 bionic main" | tee /etc/apt/sources.list.d/nodesource.list
@@ -80,6 +76,8 @@ RUN mkdir -p /usr/local/adobe/flex/4.6 && \
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 \
@@ -119,12 +117,15 @@ RUN apt-get install -y --no-install-recommends \
aspnetcore-runtime-6.0 \
dotnet-apphost-pack-6.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 && \
+# 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` \
@@ -262,11 +263,12 @@ RUN apt-get install -y --no-install-recommends \
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/*
+# 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 THRIFT_ROOT /thrift
RUN mkdir -p $THRIFT_ROOT/src
diff --git a/build/docker/ubuntu-xenial/Dockerfile b/build/docker/ubuntu-xenial/Dockerfile
index 5033d7726..1428fac00 100644
--- a/build/docker/ubuntu-xenial/Dockerfile
+++ b/build/docker/ubuntu-xenial/Dockerfile
@@ -74,6 +74,8 @@ 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 \
@@ -118,13 +120,16 @@ RUN apt-get install -y --no-install-recommends \
aspnetcore-runtime-6.0 \
dotnet-apphost-pack-6.0
-RUN apt-get install -y --no-install-recommends \
-`# Erlang dependencies` \
- erlang-base \
- erlang-eunit \
- erlang-dev \
- erlang-tools \
- rebar
+# Erlang dependencies
+ARG ERLANG_OTP_VERSION=18.3.4.11
+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` \
@@ -246,11 +251,12 @@ RUN apt-get install -y --no-install-recommends \
locale-gen de_DE.UTF-8 && \
update-locale
-# Clean up
-RUN rm -rf /var/cache/apt/* && \
- rm -rf /var/lib/apt/lists/* && \
- rm -rf /tmp/* && \
- rm -rf /var/tmp/*
+# 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