У меня есть приложение 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, он работает, также приложение запускается и проверяет миграцию, но при следующем выборе падает.
Пожалуйста, какие-нибудь предложения? Это сводит меня с ума