2014-09-18 24 views
8

Ben bir coreOS kümesinde yüksek kullanılabilirlik Redis dağıtmak için arıyorum ve çalışan bir Redis Sentinel docker görüntüsüne (yani Dockerfile) ihtiyacım var. Bir tane oluşturmak için yeterince bilgi/uzmanlık topladım (bence) ... fakat gelişmiş ağlarla sınırlı bilgi/deneyimim, onu inşa etmekten ve paylaşmamı engelleyen tek şey.Redis sentinel docker image/Dockerfile

Burada uzman biri, Redis Sentinel Dockerfile geliştirmeme yardımcı olabilir (şu anda mevcut değil)? Redis/Docker topluluğu bundan gerçekten yararlanırdı.

Burada daha geniş bir konu ve bağlam var: https://github.com/antirez/redis/pull/1908

Ben çözüm özellikle burada olduğunu düşünüyorum: Burada https://github.com/antirez/redis/pull/1908#issuecomment-54380876

ben kullanıyorum Dockerfile var ... ancak yukarıdaki iplik okursanız , yorumlarımı görebileceksin (joshula) ... Mattsta'nın bahsettiği Networking çözümlerinden yoksun. Bunu coreOS üzerinde kullandığım için, sentinel.conf dosyasındaki tüm yapılandırma ayarlarının komut satırında çalışma zamanında ayarlandığını unutmayın (bu nedenle 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 

cevap

11

Bir ton çalışmadan sonra bunu anladım. // github: - Bir [komut] içine liman işçisi dosyası dahil ettik (https

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

+0

Hey Joshula: İşte Docker yoluyla yüksek düzeyde kullanılabilir Redis örneğini dağıtmak isteyen herkes için basit hale getirmek için var .com/mdevilliers/docker-rediscluster), sentinel yapılandırmasıyla bir ana/bağımlı kümeyi ayarlar. Bir göz atabilir ve geri bildiriminiz olabilir mi? – markdevilliers

+0

Merhaba İşareti, oldukça iyi görünüyor, ileriye doğru ilerlerken aklınızda bulundurmanız gereken birkaç not var: announce-ip yapılandırması +2.8.15 sürümüne eklendi (bu yüzden sadece sürümlerin farkında olun). Lütfen bir üretim ortamında (sentinellerin farklı fiziksel makinelerde olduğu), "announce-ip" in fiziksel ana makinenin IP'sine başvurduğundan emin olun. Ayrıca, ben (ve bazı diğer millet teyit) bir konteyner Redis çalıştırırken performans sorunları - özellikle Docker tanıttı ekstra ağ katmanları/köprüler etrafında ... – joshula

+0

Ben, Redis yüklemek/çalıştırmak için karar verdim) fiziksel bir makinede (Antirez ve Mattsta'nın yukarıdaki mesajlarda söylediği gibi, Redis ve Sentinel henüz Docker benzeri bir ortamda çalışacak şekilde tam olarak tasarlanmamış/optimize edilmemişlerdir. – joshula