-
Notifications
You must be signed in to change notification settings - Fork 538
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Docker image #1116
Comments
Hi, Below is what I used with some success (of note remains an issue with the 'riak' user in the container, which runs the process, not mapping correctly to a 'riak' user in the host). Some additional notes about the Dockerfile:
DockerfileFROM ubuntu:focal
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && apt-get install -y --no-install-recommends apt-utils && \
apt-get update && apt-get -y --no-install-recommends dist-upgrade && \
apt-get install -y --no-install-recommends curl apt-transport-https ca-certificates && \
apt-get install -y --no-install-recommends openjdk-8-jdk-headless locales logrotate sudo && \
rm -rf /var/lib/apt/lists/* /tmp/*
RUN curl -O https://files.tiot.jp/riak/kv/3.0/3.0.10/ubuntu/focal64/riak_3.0.10-yokozuna-OTP22.3_amd64.deb && \
dpkg -i riak_3.0.10-yokozuna-OTP22.3_amd64.deb && \
rm -f riak_3.0.10-yokozuna-OTP22.3_amd64.deb
ENV DEBIAN_FRONTEND teletype \
TERM=xterm \
LANG en_US.UTF-8
ADD riak-kv-docker.sh /usr/bin/riak-docker
RUN chmod +x /usr/bin/riak-docker && \
locale-gen en_US en_US.UTF-8 && \
echo "ulimit -n 200000" >> /etc/default/riak && \
echo "riak soft nofile 65536" >> /etc/security/limits.conf && \
echo "riak hard nofile 200000" >> /etc/security/limits.conf && \
echo "buckets.default.allow_mult = true" >> /etc/riak/riak.conf && \
echo "log.syslog.level = warning" >> /etc/riak/riak.conf && \
sed -i 's/127.0.0.1/0.0.0.0/' /etc/riak/advanced.config && \
sed -i 's/listener.http.internal = 127.0.0.1/listener.http.internal = 0.0.0.0/' /etc/riak/riak.conf && \
sed -i 's/listener.protobuf.internal = 127.0.0.1/listener.protobuf.internal = 0.0.0.0/' /etc/riak/riak.conf && \
sed -i 's/search = off/search = on/' /etc/riak/riak.conf && \
sed -i 's/storage_backend = bitcask/storage_backend = leveled/' /etc/riak/riak.conf && \
sed -i 's/leveldb.maximum_memory.percent = 70/leveldb.maximum_memory.percent = 10/' /etc/riak/riak.conf && \
sed -i 's/## ring_size = 64/ring_size = 64/' /etc/riak/riak.conf && \
sed -i 's/search.solr.jvm_options = -Xms1g -Xmx1g/search.solr.jvm_options = -Xms4g -Xmx4g/' /etc/riak/riak.conf && \
sed -i 's/log.console = file/log.console = console/' /etc/riak/riak.conf && \
sed -i '/log.syslog = off/alog.syslog.ident = riak-kv' /etc/riak/riak.conf && \
sed -i 's/log.syslog = off/log.syslog = on/' /etc/riak/riak.conf && \
sed -i 's/log.console = file/log.console = off/' /etc/riak/riak.conf && \
sed -i 's/leveled.compaction_top_hour = 23/leveled.compaction_top_hour = 6/' /etc/riak/riak.conf && \
sed -i 's/mdc.cluster_manager = 127.0.0.1:9080/mdc.cluster_manager = 0.0.0.0:9080/' /etc/riak/riak.conf && \
sed -i 's/leveled.log_level = info/leveled.log_level = warning/' /etc/riak/riak.conf && \
sed -i 's/log.console.level = info/log.console.level = warning/' /etc/riak/riak.conf && \
sed -i "/search = on/asearch.anti_entropy.throttle.tier1.solrq_queue_length = 0\n\
search.anti_entropy.throttle.tier1.delay = 50ms\n\
search.anti_entropy.throttle.tier2.solrq_queue_length = 50\n\
search.anti_entropy.throttle.tier2.delay = 500ms\n\
search.anti_entropy.throttle.tier3.solrq_queue_length = 100\n\
search.anti_entropy.throttle.tier3.delay = 5000ms\n\
search.anti_entropy.throttle.tier4.solrq_queue_length = 250\n\
search.anti_entropy.throttle.tier4.delay = 10000ms" /etc/riak/riak.conf && \
sed -i 's/## search.queue.high_watermark.purge_strategy = purge_one/search.queue.high_watermark.purge_strategy = purge_one/' /etc/riak/riak.conf && \
sed -i 's/## search.queue.high_watermark = 1000/search.queue.high_watermark = 1000/' /etc/riak/riak.conf && \
sed -i 's/## search.queue.batch.minimum = 10/search.queue.batch.minimum = 100/' /etc/riak/riak.conf && \
sed -i 's/## search.queue.batch.maximum = 500/search.queue.batch.maximum = 1000/' /etc/riak/riak.conf && \
sed -i 's/## search.queue.batch.flush_interval = 500ms/search.queue.batch.flush_interval = 5000ms/' /etc/riak/riak.conf && \
sed -i 's/## leveled_reload_recalc = enabled/leveled_reload_recalc = enabled/' /etc/riak/riak.conf
ADD mapping-FoldToASCII.txt /usr/lib/riak/lib/yokozuna-riak_kv-2.9.1+build.1543.ref1be8760/priv/conf/
ADD mapping-ISOLatin1Accent.txt /usr/lib/riak/lib/yokozuna-riak_kv-2.9.1+build.1543.ref1be8760/priv/conf/
VOLUME /var/lib/riak
EXPOSE 8087 8098 9080
ENTRYPOINT ["/usr/bin/riak-docker"] riak-kv-docker.sh#!/bin/bash
NODENAME=$(hostname)
IP=$(hostname -I | tr " " "\n" | grep 192.168)
IP=${IP:=127.0.0.1}
sed -i "s/nodename = [email protected]/nodename = riak@$NODENAME/" /etc/riak/riak.conf
sed -i "s/mdc.cluster_manager = 0.0.0.0:9080/mdc.cluster_manager = $IP:9080/" /etc/riak/riak.conf
sed -i "s/\"0.0.0.0\", 9080/\"$IP\", 9080/" /etc/riak/advanced.config
riak foreground |
Why isn't basho doing this? This makes me think that ultimately the project maybe be dying or not have enough resources to handle basic things like docker containers. I was going to push Riak to the engineering manager but how can I explain they don't even have a container image?~?~~? |
@bbqchickenrobot 2018 was a long time ago... |
Ah, I didn't realize the history - shame. |
Seeded from @pma's Dockerfile in basho/riak#1116 Differences: * added the referenced Solr mapping files * split `foreground` from entrypoint to cmd * exeute riak with `exec` in entrypoint script * pass through args from entrypoint with $@ * uplifted to newest Riak on the referenced deb package site
Can someone provide instructions/documentation to create a docker image for the latest 3.x releases?
The text was updated successfully, but these errors were encountered: