Skip to content

Commit caa7a83

Browse files
committed
ubuntu-*/Dockerfile: do not install curl binary
The issue was that "projinfo --remote-data" did not work without curl, but that works with just the curl libraries installed, so stop installing the curl binary. This reduces the size of the image, and makes it harder for an attacker to get their tools into a compromised container.
1 parent 5f640d4 commit caa7a83

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

docker/ubuntu-full/Dockerfile

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -544,7 +544,7 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
544544
# PROJ dependencies
545545
&& apt-get install -y \
546546
libsqlite3-0 libtiff6 libcurl4 \
547-
curl unzip ca-certificates \
547+
unzip ca-certificates \
548548
# GDAL dependencies
549549
&& apt-get install -y \
550550
bash-completion libopenjp2-7 libcairo2 python3-numpy \
@@ -571,8 +571,9 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
571571
# Install JRE with --no-install-recommends, otherwise it draws default-jre, which draws systemd, which fails to install when running the arm64v8/ubuntu:24.04 image on a 64bit host
572572
&& apt-get install -y --no-install-recommends openjdk-"$JAVA_VERSION"-jre \
573573
# Install Arrow C++
574-
&& apt-get install -y -V ca-certificates lsb-release \
574+
&& apt-get install -y -V curl ca-certificates lsb-release \
575575
&& curl -LO -fsS https://apache.jfrog.io/artifactory/arrow/$(lsb_release --id --short | tr 'A-Z' 'a-z')/apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb \
576+
&& apt-get purge -y curl \
576577
&& apt-get install -y -V ./apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb \
577578
&& apt-get update \
578579
&& apt-get install -y -V libarrow${ARROW_SOVERSION} \
@@ -582,7 +583,12 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
582583

583584
# Install libduckdb
584585
ARG DUCKDB_VERSION=v1.4.3
585-
RUN if test "$(uname -p)" = "x86_64"; then \
586+
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
587+
--mount=type=cache,target=/var/lib/apt,sharing=locked \
588+
export DEBIAN_FRONTEND=noninteractive \
589+
&& apt-get update \
590+
&& apt-get install -y --no-install-recommends curl \
591+
&& if test "$(uname -p)" = "x86_64"; then \
586592
curl -LO -fsS https://github.com/duckdb/duckdb/releases/download/${DUCKDB_VERSION}/libduckdb-linux-amd64.zip \
587593
&& unzip libduckdb-linux-amd64.zip libduckdb.so \
588594
&& mv libduckdb.so /usr/lib/x86_64-linux-gnu \
@@ -592,14 +598,16 @@ RUN if test "$(uname -p)" = "x86_64"; then \
592598
&& unzip libduckdb-linux-arm64.zip libduckdb.so \
593599
&& mv libduckdb.so /usr/lib/aarch64-linux-gnu \
594600
&& rm -f libduckdb-linux-arm64.zip; \
595-
fi
601+
fi \
602+
&& apt-get purge -y curl
596603

597604
ARG WITH_ORACLE=
598605
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
599606
--mount=type=cache,target=/var/lib/apt,sharing=locked \
600607
if test "$(uname -p)" = "x86_64"; then \
601608
if echo "$WITH_ORACLE" | grep -Eiq "^(y(es)?|1|true)$" ; then ( \
602-
apt-get update \
609+
export DEBIAN_FRONTEND=noninteractive \
610+
&& apt-get update \
603611
&& apt-get install -y -V libaio1t64 \
604612
&& ln -s libaio.so.1t64 /usr/lib/x86_64-linux-gnu/libaio.so.1 \
605613
) ; fi \

docker/ubuntu-small/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
233233
# PROJ dependencies
234234
&& apt-get install -y --no-install-recommends \
235235
libsqlite3-0 libtiff6 libcurl4 \
236-
curl unzip ca-certificates \
236+
unzip ca-certificates \
237237
# GDAL dependencies
238238
&& apt-get install -y --no-install-recommends \
239239
bash-completion python3-numpy libpython3.12 \

0 commit comments

Comments
 (0)