sptrakesh/cppbase

By sptrakesh

Updated 8 days ago

Base container for c++ framework/application containers. Also includes fmt and ranges-v3 libraries.

Image
0

3.7K

Base container used for building other c++ framework/application containers.

Note: The gcc tag is from the latest gcc image.

FROM alpine:latest
MAINTAINER Rakesh Vidyadharan <rakesh@sptci.com>

ENV LANG=en_US.utf8

RUN apk --no-cache upgrade \
  && apk add --no-cache cmake git vim loksh curl \
    ca-certificates zlib-dev openssl-dev \
    linux-headers build-base jemalloc-dev

RUN git clone https://github.com/fmtlib/fmt.git --branch 9.1.0 \
  && cd fmt \
  && cmake \
    -DCMAKE_CXX_STANDARD=20 \
    -DCMAKE_CXX_STANDARD_REQUIRED=ON \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_INSTALL_PREFIX=/opt/local \
    -DCMAKE_INSTALL_LIBDIR=lib \
    -DFMT_TEST=OFF \
    -DFMT_MODULE=OFF \
    -S . -B build \
  && cmake --build build -j8 \
  && (cd build && make install)

RUN git clone https://github.com/ericniebler/range-v3.git --branch 0.12.0 \
    && cd range-v3 \
    && cmake \
      -DCMAKE_CXX_STANDARD=20 \
      -DCMAKE_CXX_STANDARD_REQUIRED=ON \
      -DCMAKE_BUILD_TYPE=Release \
      -DCMAKE_INSTALL_PREFIX=/opt/local \
      -DCMAKE_INSTALL_LIBDIR=lib \
      -DRANGE_V3_DOCS=OFF \
      -DRANGE_V3_EXAMPLES=OFF \
      -DRANGE_V3_PERF=OFF \
      -DRANGE_V3_TESTS=OFF \
      -DRANGE_V3_INSTALL=ON \
      -B build -S . \
    && cmake --build build -j8 \
    && (cd build; make install)

Docker Pull Command

docker pull sptrakesh/cppbase