To run the tests:
docker run -v="$PWD"/antidote:/usr/src/antidote -ti antidote /bin/bash| FROM erlang:21 | |
| ENV HANDOFF_PORT "8099" | |
| ENV PB_PORT "8087" | |
| ENV PB_IP "0.0.0.0" | |
| ENV PBSUB_PORT "8086" | |
| ENV LOGREADER_PORT "8085" | |
| ENV RING_STATE_DIR "data/ring" | |
| ENV PLATFORM_DATA_DIR "data" | |
| ENV NODE_NAME "antidote@127.0.0.1" | |
| ENV SHORT_NAME "false" | |
| ENV ANTIDOTE_REPO "https://github.com/AntidoteDB/antidote.git" | |
| ENV ANTIDOTE_BRANCH "master" | |
| RUN set -xe \ | |
| && apt-get update \ | |
| && apt-get install -y --no-install-recommends git openssl ca-certificates \ | |
| && cd /usr/src | |
| ADD ./antidote /usr/src/antidote | |
| ## So as to get more meaningful error messages | |
| RUN cd /usr/src/antidote \ | |
| && make rel | |
| RUN cd /usr/src/antidote \ | |
| && cp -R _build/default/rel/antidote /opt/ \ | |
| && sed -e '$i,{kernel, [{inet_dist_listen_min, 9100}, {inet_dist_listen_max, 9100}]}' /usr/src/antidote/_build/default/rel/antidote/releases/0.0.2/sys.config > /opt/antidote/releases/0.0.2/sys.config \ | |
| && rm -rf /usr/src/antidote /var/lib/apt/lists/* | |
| ADD ./start_and_attach.sh /opt/antidote/ | |
| ADD ./entrypoint.sh / | |
| RUN chmod a+x /opt/antidote/start_and_attach.sh \ | |
| && chmod a+x /entrypoint.sh | |
| # Distributed Erlang Port Mapper | |
| EXPOSE 4369 | |
| # Ports for Antidote | |
| EXPOSE 8085 8086 8087 8099 | |
| # Antidote RPC | |
| EXPOSE 9100 | |
| VOLUME /opt/antidote/data | |
| ENTRYPOINT ["/entrypoint.sh"] | |
| CMD ["/opt/antidote/start_and_attach.sh"] | |
| #!/bin/bash | |
| set -e | |
| if [[ ! -f /opt/antidote/releases/0.0.2/setup_ok ]]; then | |
| cd /opt/antidote/releases/0.0.2/ | |
| cp vm.args vm.args_backup | |
| if [[ "$SHORT_NAME" = "true" ]]; then | |
| sed "s/-name /-sname /" vm.args_backup > vm.args | |
| fi | |
| touch setup_ok | |
| fi | |
| exec "$@" |
| docker build . -t alocal || exit | |
| Name=$(docker run -d -p 127.0.0.1:8087:8087 alocal ) | |
| echo Launched "$Name" | |
| docker exec -ti "$Name" /opt/antidote/bin/env console | |
| docker stop "$Name" | |
| #!/bin/bash | |
| NPROC=$(nproc) | |
| if [[ ${NPROC} -ge 2 ]]; then | |
| trap "echo 'Shutting down' && /opt/antidote/bin/env stop" TERM | |
| /opt/antidote/bin/env start && sleep 10 && tail -f /opt/antidote/log/console.log & wait ${!} | |
| else | |
| echo "You need at least 2 cpu cores in your Docker (virtual) machine to run this image!" | |
| echo "You have ${NPROC} processors" | |
| exit 1 | |
| fi |