sql >> Databáze >  >> NoSQL >> Redis

Spuštění redis na obrazu nodejs Docker

Nejlepším řešením by bylo použít docker compose. Pomocí toho byste vytvořili kontejner redis, propojili se s ním a spustili aplikaci node.js. První věcí by bylo nainstalovat docker compose podrobně zde - (https://docs.docker.com/compose/install/).

Jakmile to budete mít v provozu, měli byste vytvořit docker-compose.yml ve stejné složce jako dockerfile vaší aplikace. Měl by obsahovat následující

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

Poté bude redis přístupný z vaší aplikace node.js, ale namísto localhost:6379 byste použili redis:6379 pro přístup k instanci redis.

Aplikaci spustíte spuštěním docker-compose up , ve vašem terminálu. Nejlepším postupem by bylo použít network místo links ale toto bylo vytvořeno pro jednoduchost.

To lze také provést podle potřeby, s redis i node.js na stejném obrázku, následující Dockerfile by měl fungovat, je založen na tom, co je v otázce:

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" 

Tato druhá metoda je opravdu špatná praxe a pro jednoduchost jsem současně použil místo supervizora nebo podobný nástroj. Spánek v CMD má umožnit spuštění redis před skutečným spuštěním aplikace, měli byste si jej upravit tak, aby vám nejlépe vyhovoval. Doufám, že to pomůže a že použijete první metodu, protože je mnohem lepší



  1. Mongoose:jaké jsou rozdíly mezi Model.create a Collection.insert

  2. Jak nakonfigurujete Embedded MongDB pro testování integrace v aplikaci Spring Boot?

  3. Transakce Mongo DB 4.0 s Mongoose &NodeJs, Express

  4. MongoDB:Výpočet doby prodlevy mezi každou změnou stavové hodnoty