Skip to content

Instantly share code, notes, and snippets.

@SmallEndian
Last active August 5, 2019 17:03
Show Gist options
  • Select an option

  • Save SmallEndian/5190e728ee7f112620dc1889b31c5145 to your computer and use it in GitHub Desktop.

Select an option

Save SmallEndian/5190e728ee7f112620dc1889b31c5145 to your computer and use it in GitHub Desktop.
Antidote, local docker setup
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"

To run the tests:

docker run -v="$PWD"/antidote:/usr/src/antidote  -ti antidote /bin/bash
#!/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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment