[REDIS] 도커 이미지 nodejs에 레디 스를 실행
REDIS도커 이미지 nodejs에 레디 스를 실행
나는 Node.js를 응용 프로그램입니다 도커 이미지를 가지고있다. 응용 프로그램은 로컬로 실행되는 레디 스에서 일부 구성 값을 검색합니다. 그 때문에, 내가 설치하고 도커 이미지 내부의 같은 컨테이너 내에서 레디 스를 실행하려합니다.
어떻게 그 안에 도커 파일 및 구성 레디 스를 확장 할 수 있습니다?
지금 현재로, Dockerfile은 다음과 같다 :
해결법
-
==============================
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.내 유스 케이스는 맛 바람둥이 고산에서 레디 스 서버를 추가했다 :
내 유스 케이스는 맛 바람둥이 고산에서 레디 스 서버를 추가했다 :
이 그래서 일 :
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.당신이 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 &
다음은 노드 응용 프로그램에 대한 추가 단계를 가질 수 있습니다.
from https://stackoverflow.com/questions/49966097/running-redis-on-nodejs-docker-image by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] WebSocket을 통해 역사를 가진 실시간 pubsub 채팅 (0) | 2020.01.07 |
---|---|
[REDIS] 어떻게 값이 키를 검색 할 수 있습니까? 예를 들어 값이 "someValue와"모든 열쇠를 얻을 수 (0) | 2020.01.07 |
[REDIS] 다중 서버 클러스터를 Node.js를 어떻게 공유 객체에 여러 개의 노드 클러스터에 (0) | 2020.01.07 |
[REDIS] 레디 스 목록 또는 세트 팝 방법 스레드 안전입니까? (0) | 2020.01.07 |
[REDIS] 레디 스에서 Dicts 목록 (0) | 2020.01.07 |