Я пытаюсь контейнеризировать приложение nodejs.Приложение работает нормально на контейнере узла, который я вручную устанавливаю и запускаю redis, но когда я пытаюсь запустить приложение в контейнере, используя мой файл docker-compose, я получаю сообщение об ошибке:
"Ошибка:Redis подключение к локальному узлу: 6379 не удалось - подключить ECONNREFUSED 127.0.0.1:6379 ".
Я опубликую ниже свой docker-compose.yml и dockerfile, а также журнал консоли, когда я попытаюсь выполнить docker-compose up.
FROM node:8-jessie
WORKDIR /var/api-console
COPY package*.json ./
RUN npm install
COPY . . /var/api-console/
RUN apt-get update
RUN apt-get install python
EXPOSE 3000
version: '3'
services:
redis:
image: redis
ports:
- "6379:6379"
command:
redis-server
networks:
- webnet
app:
build: ./
volumes:
- ./:/var/api-console
ports:
- 3000:3000
command:
node app.js
networks:
- webnet
networks:
webnet:
AIDEVERSUSCATCH:api-console evan.dhillon$ docker-compose up
WARNING: The Docker Engine you're using is running in swarm mode.
Compose does not use swarm mode to deploy services to multiple nodes in a swarm. All containers will be scheduled on the current node.
To deploy your application across the swarm, use `docker stack deploy`.
Starting api-console_app_1 ... done
Starting api-console_redis_1 ... done
Attaching to api-console_app_1, api-console_redis_1
redis_1 | 1:C 04 Jun 2019 03:12:27.660 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
redis_1 | 1:C 04 Jun 2019 03:12:27.660 # Redis version=5.0.5, bits=64, commit=00000000, modified=0, pid=1, just started
redis_1 | 1:C 04 Jun 2019 03:12:27.660 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
redis_1 | 1:M 04 Jun 2019 03:12:27.661 * Running mode=standalone, port=6379.
redis_1 | 1:M 04 Jun 2019 03:12:27.661 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
redis_1 | 1:M 04 Jun 2019 03:12:27.661 # Server initialized
redis_1 | 1:M 04 Jun 2019 03:12:27.661 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
redis_1 | 1:M 04 Jun 2019 03:12:27.661 * DB loaded from disk: 0.000 seconds
redis_1 | 1:M 04 Jun 2019 03:12:27.661 * Ready to accept connections
app_1 | Express server listening on port 3000
app_1 | Error Error: Redis connection to localhost:6379 failed - connect ECONNREFUSED 127.0.0.1:6379
app_1 | Error AbortError: Redis connection lost and command aborted. It might have been processed.
app_1 | events.js:183
app_1 | throw er; // Unhandled 'error' event
app_1 | ^
app_1 |
app_1 | Error: Redis connection to localhost:6379 failed - connect ECONNREFUSED 127.0.0.1:6379
app_1 | at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1191:14)
api-console_app_1 exited with code 1