2014-09-18 20 views
8

मैं कोरोज क्लस्टर पर उच्च उपलब्धता रेडिस को तैनात करना चाहता हूं, और मुझे एक रेडिस सेंटीनेल डॉकर छवि (यानी डॉकरफाइल) की आवश्यकता है जो काम करता है। मैंने एक (मुझे लगता है) बनाने के लिए पर्याप्त जानकारी/विशेषज्ञता एकत्र की है ... लेकिन उन्नत नेटवर्किंग के साथ मेरा सीमित ज्ञान/अनुभव केवल एक चीज है जो मुझे इसे बनाने और साझा करने से रोकती है।रेडिस सेंटीनेल डॉकर छवि/डॉकरफाइल

क्या कोई यहां विशेषज्ञ हो सकता है जो मुझे रेडिस सेंटीनेल डॉकरफाइल विकसित करने में मदद करता है (अभी कोई भी मौजूद नहीं है)? रेडिस/डॉकर समुदाय वास्तव में इससे लाभान्वित होगा।

यहाँ व्यापक मुद्दा और संदर्भ है: https://github.com/antirez/redis/pull/1908

मुझे लगता है कि समाधान यहीं विशेष रूप से है: https://github.com/antirez/redis/pull/1908#issuecomment-54380876

यहाँ Dockerfile मैं उपयोग करते आ रहे हैं ... लेकिन आप ऊपर धागा पढ़ा करता है, तो , आप मेरी टिप्पणियां देखेंगे (जोशुला) ... इसमें नेटवर्किंग फिक्स की कमी है जो मैटस्टा के बारे में बात कर रहा है। ध्यान दें कि क्योंकि मैं कोरओएस पर इसका उपयोग कर रहा हूं, sendinel.conf में किसी भी कॉन्फ़िगरेशन सेटिंग्स को कमांड लाइन (इसलिए एंटरपॉइंट) के माध्यम से रन-टाइम पर सेट किया जा रहा है।

# 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 

उत्तर

11

काम के एक टन के बाद, मैंने इसे समझ लिया। // GitHub: - मैं में एक [स्क्रिप्ट] अपने डोकर फ़ाइल शामिल किया है (https

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

+0

अरे, Joshula: यहाँ यह किसी और को जो डोकर के माध्यम से एक उच्च उपलब्ध redis उदाहरण तैनात करने के लिए चाहता है के लिए सरल बनाने के लिए है .com/mdevilliers/docker-rediscluster) जो सेंटीनेल कॉन्फ़िगरेशन के साथ एक मास्टर/गुलाम क्लस्टर सेट करता है। बढ़िया है अगर आप इसे देख सकते हैं और फीडबैक? – markdevilliers

+0

हाय मार्क, यह बहुत अच्छा लगता है, कुछ नोट्स केवल ध्यान में रखते हुए ध्यान में रखते हैं: घोषणा-आईपी कॉन्फ़िगरेशन संस्करण +2.8.15 में जोड़ा गया था (इसलिए केवल संस्करणों से अवगत रहें)। कृपया सुनिश्चित करें कि एक उत्पादन वातावरण में (जहां प्रेषक विभिन्न भौतिक मशीनों पर हैं) कि 'घोषणा-आईपी' भौतिक मेजबान मशीन के आईपी का संदर्भ दे रहा है। इसके अलावा, मैं (और कुछ अन्य लोगों ने पुष्टि की है) एक कंटेनर में रेडिस चलाते समय प्रदर्शन के मुद्दे - विशेष रूप से अतिरिक्त नेटवर्किंग परतों/पुलों के आसपास जो डॉकर परिचय देता है ... – joshula

+0

तो, मैंने रेडिस को स्थापित/चलाने का निर्णय लिया है (उत्पादन में) एक भौतिक मशीन पर (जैसा कि एंटीरेज़ और मैटस्टा ने उपरोक्त पदों में कहा था, रेडिस और सेंटीनेल को अभी तक डॉकर जैसी पर्यावरण में चलाने के लिए पूरी तरह डिज़ाइन/अनुकूलित नहीं किया गया है। – joshula