Am aplicația Rails în docker și, de asemenea, imaginea mariadb docker.
Dar eșuează în timpul conexiunii
2021-11-05 8:27:49 3 [Avertisment] Conexiune întreruptă 3 la db: utilizator „dezvoltare”: gazdă „rădăcină”: „172.18.0.4” (A apărut o eroare la citirea pachetelor de comunicare)``
Dockerfile-ul meu este
DIN rubin:2.6.5
RUN apt-get update; apt-get install -y build-essential nodejs npm vim htop
RUN npm install --global yarn
RUN mkdir -p /app
WORKDIR /app
ENV BUNDLER_VERSION=2.1.4
COPIEAZĂ Gemfile Gemfile.lock /app/
RUN bundler de instalare a gemei: 2.1.4
RUN bundle install --jobs 20 --retry 5
RUN yarn install --silent --no-progress --no-audit --no-optional --check-files
#RUN bundle exec rake db:migrate
# Copiați aplicația principală.
COPIE . ./
RUN rm -f /app/tmp/pids/server.pid
EXPUNERE 3000
CMD [„șine”, „server”, „-b”, „0.0.0.0”]
Mariadb dockerfile este (rețineți că este pentru dezvoltarea mea localhost, deci nu sunt necesare parole)
DE LA mariadb
RUN apt-get update; apt-get install -y build-essential vim htop
ENV MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=da
ENV MARIADB_DATABASE=dezvoltare
ENV MARIADB_USER=rădăcină
COPIEAZĂ ./schema.sql /docker-entrypoint-initdb.d/a-schema.sql
COPIEAZĂ ./data.sql /docker-entrypoint-initdb.d/b-data.sql
Și fișierul compozitor
Servicii:
aplicatie:
construi: .
comandă: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
volume:
- .:/aplicație
porturi:
- „3000:3000”
link-uri:
- mariadb
mediu inconjurator:
WEBPACKER_DEV_SERVER_HOST: pachet web
RAILS_ENV: dezvoltare
RACK_ENV: dezvoltare
BAZĂ DE DATE: dezvoltare
DB_USERNAME: root
DB_HOST: mariadb
LOCALIZARE: cs
depinde de:
- pachet web
mariadb:
construi:
context: .
dockerfile: Dockerfile.mariadb
repornire: la eșec
volume:
- ./mariadb:/var/lib/mysql
pachet web:
construi: .
comandă: ./bin/webpack-dev-server
#volume:
# - .:/app
porturi:
- „3035:3035”
mediu inconjurator:
NODE_ENV: dezvoltare
RAILS_ENV: dezvoltare
WEBPACKER_DEV_SERVER_HOST: 0.0.0.0
când încerc să mă conectez de la containerul de aplicații la baza de date folosind mysql_client, funcționează, de asemenea, aplicația pornește și verifică migrarea, dar în următoarele selectări cade.
Va rog vreo sugestie? Ma innebuneste