【发布时间】:2022-10-23 06:18:40
【问题描述】:
我的nodejs application 和redis database 有两个容器。我使用docker compose file 使用此命令docker-compose up -d --build 创建了两个容器,容器启动,我的redis 连接建立,我可以在日志中看到它已连接并准备好使用。
登录时,我编写了一个逻辑,将用户refresh token 和user id 存储在redis database 中。这已经在本地进行了测试并且效果很好。没有问题。
但是当我通过 docker 容器创建和运行应用程序时,用户登录时没有任何内容存储在 redis database 中。我什至不知道从哪里开始调试,因为它根本没有给我任何想法。
如果我在 docker 容器外本地运行相同的代码,它运行良好。
这是我的码头文件:
FROM node:lts-alpine
WORKDIR /app
COPY package*.json ./
COPY client/package*.json client/
RUN npm run install-client --only=production
COPY api/package*.json api/
RUN npm run install-api --only=production
COPY client/ client/
RUN npm run client-build --prefix client
COPY api/ api/
USER node
CMD [ "npm", "start", "--prefix", "api" ]
EXPOSE 5000
我的撰写文件:
version: "3"
services:
redisdb:
container_name: redisdb
hostname: redis
image: redis
ports:
- "6379:6379"
fullstack-cms:
build: .
ports:
- "5000:5000"
env_file:
- ./api/.env
depends_on:
- redisdb
它没有显示任何错误。当我使用console.log 并检查代码中redis 变量的值时,它显示undefined。在本地,一切正常,只是不能通过 docker 容器工作,请帮助我。
【问题讨论】:
标签: node.js docker docker-compose dockerfile containers