9

高可用性 Redis を coreOS クラスターにデプロイしようとしています。動作する 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
4

2 に答える 2

12

たくさんの作業の後、私はこれを理解することになりました。Docker を介して高可用性の redis インスタンスをデプロイしたい他の人にとって簡単にするために、次のようにします。

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

于 2014-09-19T16:07:42.880 に答える