Здравствуйте!
Разрабатываю сайт на nodejs + express + sequelize-cli
Появилась задача для разработки все разворачивать через докер.
Нужно при старте запускать mysql, adminer, backend
Файл docker-compose.yml:
version: '3'
services:
backend:
build: ./backend
ports:
- 5000:5000
db:
image: mysql
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_DATABASE: database_development
MYSQL_ROOT_PASSWORD: password_development
adminer:
image: adminer
restart: always
ports:
- 8080:8080
Dockerfile (backend):
FROM node:latest
COPY . /app
WORKDIR /app
RUN npm install
RUN npx sequelize db:migrate
RUN npx sequelize db:seed:all
EXPOSE 5000
VOLUME .:/app
CMD npm run dev
После запуска команды: docker-composer up
Появляется такая ошибка:
Step 5/9 : RUN npx sequelize db:migrate
---> Running in 08fd366ceb86
Sequelize CLI [Node: 15.5.0, CLI: 6.2.0, ORM: 6.3.5]
Loaded configuration file "database/config.json".
Using environment "development".
ERROR: connect ECONNREFUSED 127.0.0.1:3306
npm ERR! code 1
npm ERR! path /app
npm ERR! command failed
npm ERR! command sh -c sequelize db:migrate
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2020-12-28T07_22_31_094Z-debug.log
ERROR: Service 'backend' failed to build : The command '/bin/sh -c npx sequelize db:migrate' returned a non-zero code: 1
Как я понимаю не подключается к БД. В интернете советовали юзать depends_on, после применения depends_on поменялся просто порядок сборки, а ошибка осталась... Подскажите как исправить. Спасибо!