Skip to content

Commit

Permalink
Modernize Dockerfile
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
ZetaTwo authored and happyCoder92 committed Nov 4, 2024
1 parent 583bc3e commit bc30a1a
Showing 1 changed file with 19 additions and 4 deletions.
23 changes: 19 additions & 4 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -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 \
Expand All @@ -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

0 comments on commit bc30a1a

Please sign in to comment.