Use multi-stage docker build to reduce image size.
parent
b1f0ad01d1
commit
06abf58801
47
Dockerfile
47
Dockerfile
|
@ -1,25 +1,38 @@
|
||||||
FROM ubuntu:eoan
|
#
|
||||||
|
# First stage - builder
|
||||||
|
#
|
||||||
|
FROM debian:10-slim AS builder
|
||||||
|
|
||||||
ENV DEBIAN_FRONTEND noninteractive
|
ENV DEBIAN_FRONTEND noninteractive
|
||||||
ENV LC_ALL C.UTF-8
|
ENV LC_ALL C.UTF-8
|
||||||
|
|
||||||
# This allows you to use a local Ubuntu mirror
|
# This allows you to use a local Debian mirror
|
||||||
ARG APT_URL=
|
ARG APT_URL=http://deb.debian.org/debian/
|
||||||
ENV APT_URL ${APT_URL:-http://archive.ubuntu.com/ubuntu/}
|
ARG MAKE_FLAGS=-j2
|
||||||
RUN sed -i "s%http://archive.ubuntu.com/ubuntu/%${APT_URL}%" /etc/apt/sources.list
|
|
||||||
|
|
||||||
|
RUN sed -i "s%http://deb.debian.org/debian/%${APT_URL}%" /etc/apt/sources.list \
|
||||||
# Update packages and install dependencies
|
&& apt-get update && apt-get -y upgrade \
|
||||||
RUN apt-get update && apt-get -y upgrade && apt-get -y clean
|
&& apt-get install -y protobuf-compiler libh2o-dev libcurl4-openssl-dev \
|
||||||
RUN apt-get install -y protobuf-compiler libh2o-dev libcurl4-openssl-dev \
|
libssl-dev libprotobuf-dev libh2o-evloop-dev libwslay-dev \
|
||||||
libssl-dev libprotobuf-dev libh2o-evloop-dev libwslay-dev libeigen3-dev libzstd-dev \
|
libeigen3-dev libzstd-dev libfmt-dev libncurses-dev \
|
||||||
make gcc g++ git build-essential curl autoconf automake libfmt-dev libncurses5-dev \
|
make gcc g++ git build-essential curl autoconf automake help2man
|
||||||
&& apt-get -y clean
|
|
||||||
|
|
||||||
# Build
|
# Build
|
||||||
ARG MAKE_FLAGS=-j2
|
ADD . /galmon-src/
|
||||||
ADD . /galmon/
|
RUN cd /galmon-src/ \
|
||||||
WORKDIR /galmon/
|
&& make $MAKE_FLAGS \
|
||||||
RUN make $MAKE_FLAGS
|
&& prefix=/galmon make install
|
||||||
ENV PATH=/galmon:${PATH}
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Second stage - contains just the binaries
|
||||||
|
#
|
||||||
|
FROM debian:10-slim
|
||||||
|
RUN apt-get update && apt-get -y upgrade \
|
||||||
|
&& apt-get install -y libcurl4 libssl1.1 libprotobuf17 libh2o-evloop0.13 \
|
||||||
|
libncurses6 \
|
||||||
|
&& apt-get -y clean \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
COPY --from=builder /galmon/ /galmon/
|
||||||
|
ENV PATH=/galmon/bin:${PATH}
|
||||||
|
ENV LC_ALL C.UTF-8
|
||||||
|
WORKDIR /galmon/bin
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
#FROM ubuntu:disco
|
|
||||||
FROM arm32v7/debian:unstable
|
|
||||||
|
|
||||||
ENV DEBIAN_FRONTEND noninteractive
|
|
||||||
ENV LC_ALL C.UTF-8
|
|
||||||
|
|
||||||
# Update packages and install dependencies
|
|
||||||
RUN apt-get update && apt-get -y upgrade && apt-get -y clean
|
|
||||||
RUN apt-get install -y protobuf-compiler libh2o-dev libcurl4-openssl-dev \
|
|
||||||
libssl-dev libprotobuf-dev libh2o-evloop-dev libwslay-dev libeigen3-dev libzstd-dev \
|
|
||||||
make clang-9 git build-essential curl autoconf automake libfmt-dev libncurses5-dev \
|
|
||||||
&& apt-get -y clean
|
|
||||||
|
|
||||||
# Build
|
|
||||||
ADD . /galmon/
|
|
||||||
WORKDIR /galmon/
|
|
||||||
RUN make
|
|
||||||
ENV PATH=/galmon:${PATH}
|
|
Loading…
Reference in New Issue