From 2bd4c5cc05ad52a804ce7fdb6ec2521bfaff1fe4 Mon Sep 17 00:00:00 2001 From: azban Date: Thu, 1 Nov 2018 02:35:45 -0700 Subject: [PATCH] docker: use alpine to slim down images (#1047) --- substrate/Dockerfile | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/substrate/Dockerfile b/substrate/Dockerfile index 0388c7298a..4e365fe43e 100644 --- a/substrate/Dockerfile +++ b/substrate/Dockerfile @@ -1,37 +1,36 @@ -FROM phusion/baseimage:0.10.1 as builder -LABEL maintainer "chevdor@gmail.com" +FROM frolvlad/alpine-glibc AS builder +LABEL maintainer="chevdor@gmail.com" LABEL description="This is the build stage for Substrate. Here we create the binary." +RUN apk add build-base \ + cmake \ + linux-headers \ + openssl-dev && \ + apk add --repository http://nl.alpinelinux.org/alpine/edge/community cargo + ARG PROFILE=release WORKDIR /substrate -RUN apt-get update && \ - apt-get upgrade -y && \ - apt-get install -y cmake pkg-config libssl-dev git - -RUN curl https://sh.rustup.rs -sSf | sh -s -- -y - COPY . /substrate -RUN export PATH=$PATH:$HOME/.cargo/bin && cargo build --$PROFILE +RUN cargo build --$PROFILE # ===== SECOND STAGE ====== -FROM phusion/baseimage:0.10.0 -LABEL maintainer "chevdor@gmail.com" +FROM alpine:3.8 +LABEL maintainer="chevdor@gmail.com" LABEL description="This is the 2nd stage: a very small image where we copy the Substrate binary." ARG PROFILE=release COPY --from=builder /substrate/target/$PROFILE/substrate /usr/local/bin -RUN mv /usr/share/ca* /tmp && \ - rm -rf /usr/share/* && \ - mv /tmp/ca-certificates /usr/share/ && \ - rm -rf /usr/lib/python* && \ +RUN apk add --no-cache ca-certificates \ + libstdc++ \ + openssl + +RUN rm -rf /usr/lib/python* && \ mkdir -p /root/.local/share/Substrate && \ ln -s /root/.local/share/Substrate /data -RUN rm -rf /usr/bin /usr/sbin - EXPOSE 30333 9933 9944 VOLUME ["/data"]