我正在使用docker-compose,当我在控制台中尝试运行yarn sequelize db:migrate
时,出现以下错误:
"Loaded configuration file "src/config/database.js". ERROR: 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