Skip to content

Commit

Permalink
Run apt-get in docker builds without using any cache. (hyperledger#7011)
Browse files Browse the repository at this point in the history
* Run apt-get in docker builds without using any cache. Split steps in individual RUN commands

Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>

* use env variable for apt non-cache settings, revert split into several RUN commands

Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>

* clean apt-get cache after installation to decrease docker image size

Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>

---------

Signed-off-by: Daniel Lehrner <daniel.lehrner@consensys.net>
  • Loading branch information
daniellehrner authored May 8, 2024
1 parent 8c596a5 commit 033d4d6
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 18 deletions.
26 changes: 15 additions & 11 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,17 +1,21 @@

FROM ubuntu:23.10
ARG VERSION="dev"

RUN apt-get update && \
apt-get install --no-install-recommends -q --assume-yes openjdk-21-jre-headless=21* libjemalloc-dev=5.* adduser=3* && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* && \
# Ubuntu 23.10 comes with an "ubuntu" user with uid 1000. We need 1000 for besu.
userdel ubuntu 2>/dev/null || true && rm -rf /home/ubuntu && \
# Ensure we use a stable UID for besu, as file permissions are tied to UIDs.
adduser --uid 1000 --disabled-password --gecos "" --home /opt/besu besu && \
chown besu:besu /opt/besu && \
chmod 0755 /opt/besu
ENV NO_PROXY_CACHE="-o Acquire::BrokenProxy=true -o Acquire::http::No-Cache=true -o Acquire::http::Pipeline-Depth=0"

# Update and install dependencies without using any cache
RUN apt-get update $NO_PROXY_CACHE && \
apt-get install $NO_PROXY_CACHE --no-install-recommends -q --assume-yes openjdk-21-jre-headless=21* libjemalloc-dev=5.* adduser=3* && \
# Clean apt cache
apt-get clean && \
rm -rf /var/cache/apt/archives/* /var/cache/apt/archives/partial/* && \
rm -rf /var/lib/apt/lists/* && \
# Ubuntu 23.10 comes with an "ubuntu" user with uid 1000. We need 1000 for besu.
userdel ubuntu 2>/dev/null || true && rm -rf /home/ubuntu && \
# Ensure we use a stable UID for besu, as file permissions are tied to UIDs.
adduser --uid 1000 --disabled-password --gecos "" --home /opt/besu besu && \
chown besu:besu /opt/besu && \
chmod 0755 /opt/besu

USER besu
WORKDIR /opt/besu
Expand Down
19 changes: 12 additions & 7 deletions ethereum/evmtool/src/main/docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,14 +1,19 @@

FROM ubuntu:22.04
ARG VERSION="dev"
ENV NO_PROXY_CACHE="-o Acquire::BrokenProxy=true -o Acquire::http::No-Cache=true -o Acquire::http::Pipeline-Depth=0"

RUN apt-get update && \
apt-get install --no-install-recommends -q --assume-yes ca-certificates-java=20190909* && \
apt-get install --no-install-recommends -q --assume-yes openjdk-17-jre-headless=17* && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* && \
adduser --disabled-password --gecos "" --home /opt/besu besu && \
chown besu:besu /opt/besu
# Update and install dependencies without using any cache
RUN apt-get update $NO_PROXY_CACHE && \
apt-get install $NO_PROXY_CACHE --no-install-recommends -q --assume-yes ca-certificates-java=20190909* && \
apt-get install $NO_PROXY_CACHE --no-install-recommends -q --assume-yes openjdk-17-jre-headless=17* && \
# Clean apt cache \
apt-get clean && \
rm -rf /var/cache/apt/archives/* /var/cache/apt/archives/partial/* && \
rm -rf /var/lib/apt/lists/* && \
# Creating a user for besu
adduser --disabled-password --gecos "" --home /opt/besu besu && \
chown besu:besu /opt/besu

USER besu
WORKDIR /opt/besu-evmtool
Expand Down

0 comments on commit 033d4d6

Please sign in to comment.