【发布时间】:2020-06-13 19:20:19
【问题描述】:
我正在使用 docker-compose,当我尝试在控制台中运行 yarn sequelize db:migrate 时出现以下错误:
“加载配置文件“src/config/database.js”。 错误:getaddrinfo ENOTFOUND db"
一切正常,但我无法运行迁移。
Dockerfile
FROM node:alpine
WORKDIR /usr/app
COPY package.json yarn.lock ./
RUN yarn
COPY . .
EXPOSE 3000
CMD ["yarn", "dev"]
Docker-compose.yml
version: '3'
services:
api:
container_name: api
build: .
ports:
- '3000:3000'
command: yarn dev
volumes:
- .:/usr/app
links:
- db
db:
container_name: db
image: mysql:5.7
volumes:
- ./data:/mysql/db
ports:
- '3306:3306'
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: be_db
MYSQL_USER: root
MYSQL_PASSWORD: password
.env
# Database Variables
DB_HOST=db
DB_USER=root
DB_PASS=password
DB_NAME=be_db
DB_PORT:3306
/src/config/database.js
require('dotenv').config();
module.exports = {
dialect: 'mysql',
host: process.env.DB_HOST,
username: process.env.DB_USER,
password: process.env.DB_PASS,
database: process.env.DB_NAME,
define: {
timestamps: false,
underscored: true,
underscoredAll: true,
},
};
OBS:如果我将DB_HOST=db 切换到DB_HOST=localhost,我可以运行我的迁移,但是它们,我的容器会弹出这个错误:
code: 'ECONNREFUSED',
api | syscall: 'connect',
api | address: '127.0.0.1',
api | port: 3306,
api | fatal: true
【问题讨论】:
-
你有没有设法解决这个问题?我不断收到相同的错误消息。
标签: javascript node.js docker docker-compose