복붙노트

[REDIS] 도커 이미지 nodejs에 레디 스를 실행

REDIS

도커 이미지 nodejs에 레디 스를 실행

나는 Node.js를 응용 프로그램입니다 도커 이미지를 가지고있다. 응용 프로그램은 로컬로 실행되는 레디 스에서 일부 구성 값을 검색합니다. 그 때문에, 내가 설치하고 도커 이미지 내부의 같은 컨테이너 내에서 레디 스를 실행하려합니다.

어떻게 그 안에 도커 파일 및 구성 레디 스를 확장 할 수 있습니다?

지금 현재로, Dockerfile은 다음과 같다 :

해결법

  1. ==============================

    1.가장 좋은 방법은 고정 표시기의 작성을 사용하는 것입니다. 그 다음 Node.js를 응용 프로그램을 시작하려면이 사용하면, 링크를 레디 스 컨테이너를 만들 것입니다. (https://docs.docker.com/compose/install/) - 우선은 고정 표시기의 작성은 여기에 설명 된 설치하는 것입니다.

    가장 좋은 방법은 고정 표시기의 작성을 사용하는 것입니다. 그 다음 Node.js를 응용 프로그램을 시작하려면이 사용하면, 링크를 레디 스 컨테이너를 만들 것입니다. (https://docs.docker.com/compose/install/) - 우선은 고정 표시기의 작성은 여기에 설명 된 설치하는 것입니다.

    당신이 그것을 가지고 실행되면, 당신은 앱의 dockerfile과 같은 폴더에 고정 표시기 - compose.yml을 만들어야합니다. 그것은 다음을 포함해야

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

    그런 다음 Node.js를 응용 프로그램에서 액세스 할 수 있지만, localhost 대신이 될 것 레디 스 : 6379 당신은 레디 스를 사용합니다 : 6379을 레디 스 인스턴스에 액세스 할 수 있습니다.

    귀하의 응용 프로그램을 시작하려면 터미널에 고정 표시기-작성 업, 실행됩니다. 가장 좋은 방법은 대신 링크의 네트워크를 사용하는 것입니다 그러나 이것은 간단하게하기 위해 만들어졌다.

    원하는대로 이것은 또한, 다음 Dockerfile는이 질문에 무엇을 기반으로되어 작동합니다 같은 이미지에 모두 레디 스 및 Node.js를을 가진, 수행 할 수 있습니다 :

    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를의 수면 당신은 무엇에 가장 적합한으로 조정해야합니다, 응용 프로그램이 실제로 실행되기 전에 레디 스를 시작할 수 있도록하는 것입니다. 이 훨씬 더 연습이기 때문에 첫 번째 방법을 사용하는 것이 도움과 희망

  2. ==============================

    2.내 유스 케이스는 맛 바람둥이 고산에서 레디 스 서버를 추가했다 :

    내 유스 케이스는 맛 바람둥이 고산에서 레디 스 서버를 추가했다 :

    이 그래서 일 :

    FROM tomcat:8.5.40-alpine
    
    
    RUN apk add --no-cache redis  
    RUN apk add --no-cache screen 
    
    EXPOSE 6379
    
    EXPOSE 3011
    
    
    ## Run Tomcat
    CMD screen -d -m -S Redis /usr/bin/redis-server --bind '0.0.0.0' && \
    ${CATALINA_HOME}/bin/catalina.sh run
    EXPOSE 8080
    
  3. ==============================

    3.당신이 nodejs와 레디 스 서버와 최소한의 고정 표시기를 찾고 있다면,이 작품 :

    당신이 nodejs와 레디 스 서버와 최소한의 고정 표시기를 찾고 있다면,이 작품 :

    FROM nikolaik/python-nodejs:python3.5-nodejs8
    
    RUN apt-get update
    apt-get -y install redis-server
    
    COPY . /app
    WORKDIR /app
    nohup redis-server &> redis.log &
    

    다음은 노드 응용 프로그램에 대한 추가 단계를 가질 수 있습니다.

  4. from https://stackoverflow.com/questions/49966097/running-redis-on-nodejs-docker-image by cc-by-sa and MIT license