From c52a04a4a189ec9cb53422215fe6d02ba6e83daa Mon Sep 17 00:00:00 2001 From: Egor Tensin Date: Tue, 28 Jan 2020 00:43:57 +0300 Subject: docker: multi-stage builds --- server/Dockerfile | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) (limited to 'server/Dockerfile') diff --git a/server/Dockerfile b/server/Dockerfile index 609c1ff..22364e8 100644 --- a/server/Dockerfile +++ b/server/Dockerfile @@ -1,9 +1,9 @@ # To build, run from the top-level directory: # docker build -f server/Dockerfile -t egortensin/math-server . -FROM alpine:3.11 +FROM alpine:3.11 AS base -LABEL maintainer="Egor Tensin " +FROM base AS builder ENV src_dir=/usr/src/math-server COPY [".", "$src_dir"] @@ -11,16 +11,21 @@ COPY [".", "$src_dir"] RUN build_deps='boost-dev cmake g++ make python3' && \ apk add --no-cache $build_deps && \ "$src_dir/cmake/cmake/build/build.py" \ - --install /usr/local \ + --install /opt/math-server \ --configuration Release \ -- \ "$src_dir" \ -D ENABLE_TESTS=ON \ - -D Boost_USE_STATIC_LIBS=OFF && \ - rm -rf -- "$src_dir" && \ - apk del --purge --rdepends $build_deps && \ - runtime_deps='boost-filesystem boost-program_options boost-regex boost-unit_test_framework libstdc++' && \ + -D Boost_USE_STATIC_LIBS=OFF + +FROM base + +LABEL maintainer="Egor Tensin " + +COPY --from=builder ["/opt/math-server", "/opt/math-server"] + +RUN runtime_deps='boost-filesystem boost-program_options boost-regex boost-unit_test_framework libstdc++' && \ apk add $runtime_deps && \ - /usr/local/bin/math-server-unit-tests --log_level=all + /opt/math-server/bin/math-server-unit-tests --log_level=all -CMD ["/usr/local/bin/math-server"] +CMD ["/opt/math-server/bin/math-server"] -- cgit v1.2.3