Рейтинг:0

Контейнер Docker, взаимодействующий с mariadb, аварийно завершает работу при чтении пакета сообщений с ошибкой.

флаг cn

У меня есть приложение Rails в докере, а также образ докера mariadb.

Но он терпит неудачу во время соединения на

2021-11-05 8:27:49 3 [Предупреждение] Прервано соединение 3 с базой данных: пользователь «разработка»: хост «root»: «172.18.0.4» (ошибка при чтении пакетов связи) ``

Мой докерфайл

ИЗ рубина: 2.6.5

RUN apt-получить обновление; apt-get install -y build-essential nodejs npm vim htop
ЗАПУСК npm install --global yarn

ВЫПОЛНИТЬ mkdir -p /app
РАБОЧИЙКАТАЛОГ /приложение

НАБОР_ОКРУЖАЮЩЕЙ СРЕДЫ_ВЕРСИЯ=2.1.4

КОПИРОВАТЬ Gemfile Gemfile.lock /app/

RUN сборщик установки gem: 2.1.4
ЗАПУСТИТЬ установку пакета --jobs 20 --retry 5
ЗАПУСК пряжи установить --silent --no-progress --no-audit --no-Optional --check-files

#ЗАПУСК пакета exec rake db:migrate

# Скопируйте основное приложение.
КОПИРОВАТЬ . ./

ВЫПОЛНИТЬ rm -f /app/tmp/pids/server.pid

ЭКСПОЗИЦИЯ 3000
CMD ["рельсы", "сервер", "-b", "0.0.0.0"]

Dockerfile Mariadb (обратите внимание, что это для моей локальной разработки, поэтому пароли не требуются)

ОТ mariadb


RUN apt-получить обновление; apt-get install -y build-essential vim htop

ENV MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=да
ENV MARIADB_DATABASE=разработка
ENV MARIADB_USER=корень

КОПИРОВАТЬ ./schema.sql/docker-entrypoint-initdb.d/a-schema.sql
КОПИРОВАТЬ ./data.sql/docker-entrypoint-initdb.d/b-data.sql


И файл композитора

Сервисы:
  приложение:
    строить: .
    команда: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
    тома:
      - .:/приложение
    порты:
      - "3000:3000"
    ссылки:
      - мариадб
    среда:
      WEBPACKER_DEV_SERVER_HOST: веб-пакет
      RAILS_ENV: разработка
      RACK_ENV: разработка
      БАЗА ДАННЫХ: разработка
      DB_USERNAME: корень
      DB_HOST: мариадб
      ЛОКАЛИЗАЦИЯ: cs
    зависит от:
      - вебпак

  мариадб:
    строить:
      контекст: .
      файл докеры: Dockerfile.mariadb
    перезапуск: при сбое
    тома:
      - ./mariadb:/var/lib/mysql

  веб-пакет:
    строить: .
    команда: ./bin/webpack-dev-сервер
    #тома:
    #  - .:/приложение
    порты:
      - '3035:3035'
    среда:
      NODE_ENV: разработка
      RAILS_ENV: разработка
      WEBPACKER_DEV_SERVER_HOST: 0.0.0.0

когда я пытаюсь подключиться из контейнера приложения к базе данных с помощью mysql_client, он работает, также приложение запускается и проверяет миграцию, но при следующем выборе падает.

Пожалуйста, какие-нибудь предложения? Это сводит меня с ума

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.