# # Dockerfile derived from the good work of 'Iannis Papapanagiotou' (https://github.com/ipapapa/DynomiteDocker/blob/master/Dockerfile) # It uses the startup.sh script to generate the dynomite conf YAML based on seeds.conf file provided via 'docker swarm configs' directive # as '/dynomite/seeds.conf' and the DYNO_NODE env. variable that identifies the node itself (that must exactly match one of the lines in the seeds file) # # Set the base image to Ubuntu FROM ubuntu:14.04 # File Author / Maintainer MAINTAINER Marco Lettere, Mauro Mugnaini - Nubisware S.r.l. # Update the repository sources list and Install package Build Essential RUN apt-get update && apt-get install -y \ autoconf \ build-essential \ dh-autoreconf \ git \ libssl-dev \ libtool \ python-software-properties\ redis-server \ tcl8.5 # Clone the Dynomite Git RUN git clone https://github.com/Netflix/dynomite.git RUN echo 'Git repo has been cloned in your Docker VM' WORKDIR dynomite/ # Autoreconf RUN autoreconf -fvi \ && ./configure --enable-debug=log \ && CFLAGS="-ggdb3 -O0" ./configure --enable-debug=full \ && make \ && make install ##################### INSTALLATION ENDS ##################### # Expose the peer port #RUN echo 'Exposing peer port 8101' EXPOSE 8101 # Expose the underlying Redis port #RUN echo 'Exposing Redis port 22122' EXPOSE 22122 # Expose the stats/admin port #RUN echo 'Exposing stats/admin port 22222' EXPOSE 22222 # Default port to acccess Dynomite #RUN echo 'Exposing client port for Dynomite 8102' EXPOSE 8102 # Setting overcommit for Redis to be able to do BGSAVE/BGREWRITEAOF RUN sysctl vm.overcommit_memory=1 # Set the entry-point to be the startup script ENTRYPOINT ["/dynomite/startup.sh"] #RUN echo 'copy startup file...' COPY scripts/startup.sh ./startup.sh #RUN echo '... done'