Я работаю над приложением express.js, которое было докеризовано.Вот информация о конфигурации, которую я предоставляю книжной полке.
{
"database_dev" : {
"client": "mysql",
"connection": {
"host": "DB",
"database": "TERRA_DEV",
"user": "dev",
"port": "3306",
"password": "goon",
"charset": "utf8",
"host": ""
}
},
"database_test" : {
"client": "mysql",
"connection": {
"host": "DB",
"database": "TERRA_TEST",
"user": "tester",
"port": "3306",
"password": "goon",
"charset": "utf8",
"host": ""
}
},
....
Вот мой docker-compose.test.yml, который я запускаю, чтобы попытаться выполнить свои тесты.
version: '2'
volumes:
services:
sut:
build: .
command: npm test
depends_on:
- web
web:
build: .
command: "npm start"
volumes:
- .:/usr/app/
- /usr/app/node_modules
ports:
- "3000:3000"
depends_on:
- redis
- DB
networks:
- web_sql_bridge
redis:
image: 'bitnami/redis:latest'
environment:
- ALLOW_EMPTY_PASSWORD=yes
ports:
- '6379:6379'
DB:
image: mysql:5.7
restart: always
environment:
- MYSQL_ROOT_PASSWORD="goon"
- MYSQL_DATABASE="TERRA_TEST"
- MYSQL_DATABASE="TERRA_DEV"
- MYSQL_USER="tester"
- MYSQL_PASSWORD="goon"
ports:
- "3306:3306"
networks:
- web_sql_bridge
volumes:
appconf:
networks:
web_sql_bridge:
driver: bridge
Вотошибка
Error: connect ECONNREFUSED 127.0.0.1:3306
sut_1 | at Object._errnoException (util.js:1022:11)
sut_1 | at _exceptionWithHostPort (util.js:1044:20)
sut_1 | at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1198:14)
sut_1 | --------------------
sut_1 | at Protocol._enqueue (/TerraServer/node_modules/mysql/lib/protocol/Protocol.js:145:48)
sut_1 | at Protocol.handshake (/TerraServer/node_modules/mysql/lib/protocol/Protocol.js:52:23)
sut_1 | at Connection.connect (/TerraServer/node_modules/mysql/lib/Connection.js:130:18)
В общем, как вы можете видеть сверху, у меня есть config.json с некоторой информацией о базе данных, которую я получаю в файле JS и передаю в качестве аргумента для bookshelf.js.Это используется в моих тестах мокко, где выдает ошибку, которую я опубликовал.Кажется, ошибка указывает на то, что он пытается подключиться к 127.0.0.1.Почему bookshelf.js пытается подключиться к 127.0.0.1, когда я даю ему DB?