Kentavr16
@Kentavr16
long cold winter

В чем ошибка запуска Docker compose?

есть компоуз -файл :
version: '3.8'

services:
  db:
    image: mysql:latest
    container_name: mysql_db

    environment:
      MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
      MYSQL_DATABASE: "gik-hub"
      MYSQL_USER: "root"
      MYSQL_PASSWORD:

    ports:
      - "3306:3306"
    volumes:
      - mysql_data:/var/lib/mysql

  nextjs:
    image: node:20
    container_name: nextjs_app
    working_dir: /app
    volumes:
      - ./:/app
    command: sh -c "npm install && npm run dev"
    ports:
      - "3000:3000"
    depends_on:
      - db
    environment:
      DB_NAME: ${DB_NAME}
      DB_USER: ${DB_USER}
      DB_PASSWORD: ${DB_PASSWORD}
      DB_HOST: db
      NEXTAUTH_SECRET: ${NEXTAUTH_SECRET}
      NEXTAUTH_URL: ${NEXTAUTH_URL}
    networks:
      - my_network

  migrate:
    image: node:20
    working_dir: /app
    volumes:
      - ./:/app
    entrypoint: ["sh", "-c", "npm install && npx sequelize-cli db:migrate"]
    environment:
      DB_NAME: ${DB_NAME}
      DB_USER: ${DB_USER}
      DB_PASSWORD: ${DB_PASSWORD}
      DB_HOST: db
    depends_on:
      - db
    networks:
      - my_network
networks:
  my_network:
    driver: bridge

volumes:
  mysql_data:

при запуске компоуза все запускается без проблем, но доступа к БД нет. При попытке войти в бд через консоль docker exec -it mysql_db mysql -uroot -p получаю ответ
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
. Второй контейнер отвечающий за фронтенд запускается и отрабатывает хорошо.

upd: в логах конейнера все окей, бд пишет о том что готова принимать подключения.
  • Вопрос задан
  • 145 просмотров
Решения вопроса 1
Mike_Ro
@Mike_Ro
Python, JS, WordPress, SEO, Bots, Adversting
Как подключить бд к серверу в docker-compose?

DB_HOST: db

Предположу, фронт использует localhost или 127.0.0.1 для подключения к бд? Если да, то заменяем ее на db.

Можно проверить, кто использует сеть my_network (искать в Containers), фронт должен быть там:
$ docker network inspect my_network

MYSQL_USER: "root"
MYSQL_PASSWORD:

Ну и пароль рекомендую все таки установить.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы