Modernize Dockerfile

Updates Dockerfile to use a more recent base image.
Uses a slim Debian image and uses build stages.
This results in 80% size reduction of the final image while still having a somewhat reasonable environment.
This commit is contained in:
Calle Svensson
2024-11-02 00:48:34 +01:00
committed by happyCoder92
parent 583bc3eb24
commit bc30a1a335

View File

@@ -1,6 +1,16 @@
FROM ubuntu:18.04
FROM debian:bookworm-slim AS base
# Install run-time dependencies in base image
RUN apt-get -y update && apt-get install -y \
libc6 \
libstdc++6 \
libprotobuf32 \
libnl-route-3-200
FROM base AS build
# Install build dependencies only in builder image
RUN apt-get install -y \
autoconf \
bison \
flex \
@@ -12,9 +22,14 @@ RUN apt-get -y update && apt-get install -y \
libtool \
make \
pkg-config \
protobuf-compiler \
&& rm -rf /var/lib/apt/lists/*
protobuf-compiler
COPY . /nsjail
RUN cd /nsjail && make && mv /nsjail/nsjail /bin && rm -rf -- /nsjail
RUN cd /nsjail && make clean && make
FROM base AS run
# Copy over build result and trim image
RUN rm -rf /var/lib/apt/lists/*
COPY --from=build /nsjail/nsjail /bin