[Docker] docker compose 이용해서 node.js , redis 애플리케이션 띄우기
2023. 4. 15. 14:00ㆍdocker
Node.js 환경에서 Redis사용법
- redis-server를 작동
- redis 모듈 다운
- redis 모듈 다운 후 redis클라이언트 생성
- redis.createCleint()함수를 이용해 클라이언트 생성
- 하지만 여기서 redis server가 작동하는 곳과 Node.js 앱이 작동하는 곳이 다른 곳이면 host인자와 port인자를 명시
- ex) 예로
const client = redis.createClient({ host: "https://redis-server.com", port : 6379 })
도커 환경에서 redis 클라이언트 생성시 주의사항
보통 도커를 사용하지 않는 환경에서는 redis서버가 작동되고 있는 곳의 host옵션을 URL로 위에 처럼 주면 되지만, 도커 Compose를 사용할 때는 host옵션을 docker-compose.yml파일에 명시한 컨테이너 이름으로 주면됩니다.
const client = redis.createClient({
host: "redis-server",
port : 6379
})
실제 node.js 앱에 redis로 간단한 기능 구현
페이지 refresh했을 때 숫자 +1씩 올라가도록 기능 구현. 전체 코드
const express = require("express");
const redis = require("redis");
const app = express();
const PORT = 8080;
// redis 클라이언트
const client = redis.createClient({
host: "redis-server",
port: 6379
})
client.set('number', 0)
app.get('/', (req, res) => {
res.send('hello.. docker compose')
client.get("number", (err, number) => {
// 현재 숫자를 가져온 후 1씩 올려줌.
client.set("숫자가 1씩 증가합니다. 숫자: " , number + 1)
})
})
app.listen(() => {
console.log(`server is running on ${PORT}`)
})
dockerfile 작성하기
FROM node:14
WORKDIR /usr/src/app
COPY ./ ./
RUN npm install
CMD ["node" , "server.js"]
도커 컨테이너 간 통신할 때 나타나는 에러
node애플리케이션 코드와 dockerfile까지 작성했으니 실제 애플리케이션을 실행하겠습니다.
Redis클라이언트를 실행하려면 Redis서버가 먼저 구동되어야 합니다.
먼저 레디스 서버를 위한 컨테이너를 실행하고,
Node.js를 위한 컨테이너를 실행하겠습니다.
docker build
'docker' 카테고리의 다른 글
[Docker] Docker Volume(볼륨)을 이용해 빌드 없이 소스 코드 반영하기 (0) | 2023.04.14 |
---|---|
[Docker] node.js 애플리케이션 도커로 만들기 (0) | 2023.04.13 |
[Docker] 도커 이미지 직접 만들기 (0) | 2023.04.12 |
[Docker] Docker 실행 중인 컨테이너에서 터미널로 접근하기 (0) | 2023.04.12 |
[Docker] Docker 레디스(redis)로 띄우기 (0) | 2023.04.12 |