Skip to content

Instantly share code, notes, and snippets.

@neomantra
Created September 19, 2017 21:11
Show Gist options
  • Save neomantra/e050e842f0a1ac3d7093731071be3a1f to your computer and use it in GitHub Desktop.
Save neomantra/e050e842f0a1ac3d7093731071be3a1f to your computer and use it in GitHub Desktop.
Aeron C++ Dockerfile
# Dockerfile for Aeron C++ SDK
#
# Copyright (c) 2017 Neomantra BV
# Released under the MIT License, see LICENSE.txt
FROM debian:stretch-slim
MAINTAINER Evan Wies <[email protected]>
ARG AERON_VERSION="master"
ARG AERON_JLEVEL=1
ARG AERON_CTEST=""
ARG TMPFS_SIZE="1024M"
RUN cd /tmp \
&& DEBIAN_FRONTEND=noninteractive apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends \
ca-certificates \
cmake \
curl \
g++ \
libbsd-dev \
libbsd0 \
make \
unzip \
uuid-dev \
zlib1g-dev \
&& cd /tmp \
&& if [ "$AERON_VERSION" = "master" ]; then \
curl -fSL https://github.com/real-logic/aeron/archive/master.tar.gz -o aeron.tar.gz \
; else \
curl -fSL https://github.com/real-logic/Aeron/archive/${AERON_VERSION}.tar.gz -o aeron.tar.gz \
; fi \
&& tar xzf aeron.tar.gz \
&& rm aeron.tar.gz \
&& cd /tmp/aeron-${AERON_VERSION} \
&& mkdir build \
&& cd build \
&& cmake -G "Unix Makefiles" -DBUILD_AERON_DRIVER=ON .. \
&& make -j ${AERON_JLEVEL} all \
&& if [ ${AERON_CTEST} ] ; then ctest -C Release -j ${AERON_JLEVEL} ; fi \
&& make -j ${AERON_JLEVEL} install \
&& cd /tmp \
&& rm -rf /tmp/aeron-${AERON_VERSION} \
&& DEBIAN_FRONTEND=noninteractive apt-get remove -y --purge \
ca-certificates \
cmake \
curl \
g++ \
libbsd-dev \
make \
unzip \
uuid-dev \
zlib1g-dev \
&& DEBIAN_FRONTEND=noninteractive apt-get autoremove -y \
&& rm -rf /var/lib/apt/lists/*
# Set media driver dir to /aeron
# This should be volume-mounted in docker run:
# mkdir /dev/shm/aeron
# docker run -v /dev/shm/aeron:/aeron
ENV AERON_DIR=/aeron/shm
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment