From ddbef3210309ac687f5596d00d5d9646aae8fb78 Mon Sep 17 00:00:00 2001 From: Jakub Kaczmarzyk Date: Wed, 29 Jul 2020 15:39:07 -0400 Subject: [PATCH] make Docker image smaller + use `debian:buster-slim` base This commit updates the Dockerfile to use multiple stages. In the first stage, compile-time dependencies are installed, and libzmq is compiled and tested. The second stage starts with a fresh, slim Docker image, and the compiled outputs of the first stage are copied over. Runtime dependencies, like libsodium and kerberos, are installed as well. --- Dockerfile | 41 +++++++++++++++++++++++++++++++---------- 1 file changed, 31 insertions(+), 10 deletions(-) diff --git a/Dockerfile b/Dockerfile index b8460bf5..6b8c0c63 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,11 +1,32 @@ -FROM ubuntu:14.04 +FROM debian:buster-slim AS builder +LABEL maintainer="ZeroMQ Project " +ARG DEBIAN_FRONTEND=noninteractive +RUN apt-get update -qq \ + && apt-get install -qq --yes --no-install-recommends \ + autoconf \ + automake \ + build-essential \ + git \ + libkrb5-dev \ + libsodium-dev \ + libtool \ + pkg-config \ + && rm -rf /var/lib/apt/lists/* +WORKDIR /opt/libzmq +COPY . . +RUN ./autogen.sh \ + && ./configure --prefix=/usr/local --with-libsodium --with-libgssapi_krb5 \ + && make \ + && make check \ + && make install -MAINTAINER ZeroMQ Project - -RUN apt-get update -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y git build-essential libtool autoconf automake pkg-config unzip libkrb5-dev -RUN cd /tmp && git clone git://github.com/jedisct1/libsodium.git && cd libsodium && git checkout e2a30a && ./autogen.sh && ./configure && make check && make install && ldconfig -RUN cd /tmp && git clone --depth 1 git://github.com/zeromq/libzmq.git && cd libzmq && ./autogen.sh && ./configure && make -# RUN cd /tmp/libzmq && make check -RUN cd /tmp/libzmq && make install && ldconfig -RUN rm /tmp/* -rf +FROM debian:buster-slim +LABEL maintainer="ZeroMQ Project " +ARG DEBIAN_FRONTEND=noninteractive +RUN apt-get update -qq \ + && apt-get install -qq --yes --no-install-recommends \ + libkrb5-dev \ + libsodium23 \ + && rm -rf /var/lib/apt/lists/* +COPY --from=builder /usr/local /usr/local +RUN ldconfig && ldconfig -p | grep libzmq