如何解决无法在docker中的redis和app之间建立通信
我正在尝试在Docker容器中运行节点应用程序。这取决于Redis。
以下是docker-compose.yml
version: "3"
services:
redis:
image: "redis:alpine"
ports:
- "6379:6379"
networks:
- app-network
command: ["redis-server","--bind","redis","--port","6379"]
app:
build: .
ports:
- "3123:3123"
depends_on:
- redis
networks:
- app-network
networks:
app-network:
driver: bridge
用于构建应用程序的Dockerfile如下
FROM node:10
WORKDIR /app
COPY .env.docker .env
COPY package.json package-lock.json ./
RUN npm install --silent
COPY . .
EXPOSE 3123
RUN npm start
内部节点,配置如下
const redis = require('redis');
const { REDIS_HOST,REDIS_PORT } = process.env;
const client = redis.createClient({
host: REDIS_HOST,port: REDIS_PORT,});
client.on('connect',() => {
console.log('redis connected successfully');
});
client.on('ready',() => {
console.log('Redis is ready to use');
});
client.on('error',function (error) {
console.error(error);
});
// promisify redis client methods
const { promisify } = require('util');
client.get = promisify(client.get);
client.set = promisify(client.set);
module.exports = client;
.env.local
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
.env.docker
REDIS_HOST=redis
REDIS_PORT=6379
我正在使用WSL在Windows计算机上运行docker。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。