Redis哨兵码头图像/ Dockerfile

时间:2014-09-18 14:01:03

标签: redis docker coreos redis-sentinel

我正在寻找在coreOS集群上部署高可用性Redis,我需要一个可行的Redis Sentinel docker镜像(即Dockerfile)。我已经收集了足够的信息/专业知识来创建一个(我认为)...但是我对高级网络的有限知识/经验是阻止我建立和分享它的唯一因素。

这里的专家是否可以帮助我开发Redis Sentinel Dockerfile(现在不存在)? Redis / Docker社区真的会从中受益。

这是更广泛的问题和背景: https://github.com/antirez/redis/pull/1908

我认为解决方案就在这里: https://github.com/antirez/redis/pull/1908#issuecomment-54380876

这是我一直在使用的Dockerfile ...但如果你阅读上面的帖子,你会看到我的评论(joshula)......它缺乏mattsta所说的网络修复。请注意,因为我在coreOS上使用它,所以sentinel.conf中的任何配置设置都是在运行时通过命令行设置的(因此ENTRYPOINT)。

# Pull base image.
FROM dockerfile/ubuntu:latest

# Install Redis.
RUN \
  cd /tmp && \
  wget http://download.redis.io/redis-stable.tar.gz && \
  tar xvzf redis-stable.tar.gz && \
  cd redis-stable && \
  make && \
  make install && \
  cp -f src/redis-sentinel /usr/local/bin && \
  mkdir -p /etc/redis && \
  cp -f *.conf /etc/redis && \
  rm -rf /tmp/redis-stable* && \
  sed -i 's/^\(bind .*\)$/# \1/' /etc/redis/redis.conf && \
  sed -i 's/^\(daemonize .*\)$/# \1/' /etc/redis/redis.conf && \
  sed -i 's/^\(dir .*\)$/# \1\ndir \/data/' /etc/redis/redis.conf && \
  sed -i 's/^\(logfile .*\)$/# \1/' /etc/redis/redis.conf

# Define mountable directories.
VOLUME ["/data"]

# Define working directory.
WORKDIR /data

# Expose ports.
EXPOSE 26379

# Define default command.
ENTRYPOINT redis-sentinel /etc/redis/sentinel.conf

2 个答案:

答案 0 :(得分:11)

经过大量的工作,我最终搞清楚了。这是为了让任何想要通过Docker部署高可用性redis实例的人变得简单:

https://registry.hub.docker.com/u/joshula/redis-sentinel/

答案 1 :(得分:0)

不需要自定义标记图像,也不需要与网络打乱。使用redis-ha-learningSpring Data Redisbitnami/redis图片查看我的bitnami/redis-sentinel项目。 Docker Compose文件为here。 我的代码会根据Docker Compose容器名称自动检测哨兵。