Redis
 sql >> база данни >  >> NoSQL >> Redis

Изпълнение на redis на nodejs Docker изображение

Най-доброто решение би било да използвате docker compose. С това ще създадете Redis контейнер, ще свържете към него, след което ще стартирате вашето приложение node.js. Първото нещо би било да инсталирате docker compose, описан подробно тук - (https://docs.docker.com/compose/install/).

След като го стартирате и стартирате, трябва да създадете docker-compose.yml в същата папка като dockerfile на вашето приложение. Той трябва да съдържа следното

version: '3'
services:
  myapp:
    build: .  
    ports:
     - "3011:3011"
    links:
     - redis:redis
  redis:
    image: "redis:alpine"

След това redis ще бъде достъпен от вашето приложение node.js, но вместо localhost:6379 бихте използвали redis:6379 за достъп до екземпляра на redis.

За да стартирате приложението си, трябва да изпълните docker-compose up , във вашия терминал. Най-добрата практика би била да използвате network вместо links но това е направено за простота.

Това също може да се направи по желание, като има и redis, и node.js на едно и също изображение, следният Dockerfile трябва да работи, той се основава на това, което е във въпроса:

FROM node:carbon

RUN wget http://download.redis.io/redis-stable.tar.gz && \
    tar xvzf redis-stable.tar.gz && \
    cd redis-stable && \
    make && \
    mv src/redis-server /usr/bin/ && \
    cd .. && \
    rm -r redis-stable && \
    npm install -g concurrently   

EXPOSE 6379

WORKDIR /app

COPY package.json /app

RUN npm install

COPY . /app

EXPOSE 3011

EXPOSE 6379

CMD concurrently "/usr/bin/redis-server --bind '0.0.0.0'" "sleep 5s; node /app/src/server.js" 

Този втори метод е наистина лоша практика и аз използвах едновременно вместо супервайзор или подобен инструмент за простота. Сънят в CMD е да позволи на redis да стартира преди действителното стартиране на приложението, трябва да го настроите според това, което ви подхожда най-добре. Надявам се това да ви помогне и да използвате първия метод, тъй като е много по-добра практика



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Redis Sentinel

  2. Как да зададете изтичане на няколко ключа в Redis

  3. redis dump.rdb / запазване на малки файлове

  4. Docker&Celery - ГРЕШКА:Pidfile (celerybeat.pid) вече съществува

  5. изчакване на redis с predis