Пытаясь докернизировать приложение и в моем приложении, у меня есть следующее
docker -compose.yml
version: '3.4'
services:
app:
build:
context: .
dockerfile: Dockerfile
depends_on:
- database
ports:
- "3000:3000"
volumes:
- .:/app
- gem_cache:/usr/local/bundle/gems
env_file: .env
environment:
RAILS_ENV: development
database:
image: postgres:10.12
volumes:
- ./init.sql/:/docker-entrypoint-initdb.d/init.sql
- db_data:/var/lib/postgresql/data
volumes:
gem_cache:
db_data:
В моем init. sql file
CREATE USER user1 WITH PASSWORD 'password';
ALTER USER user1 WITH SUPERUSER;
я уже запустил chmod +x init.sql
В моем файле .env у меня есть следующее
DATABASE_NAME=tools_development
DATABASE_USER=user1
DATABASE_PASSWORD=password
DATABASE_HOST=database
И это мой Dockerfile
FROM ruby:2.7.0
ENV BUNDLER_VERSION=2.1.4
RUN apt-get -y update --fix-missing
RUN apt-get install -y bash git build-essential nodejs libxml2-dev openssh-server libssl-dev libreadline-dev zlib1g-dev postgresql-client libcurl4-openssl-dev libxml2-dev libpq-dev tzdata
RUN gem install bundler -v 2.1.4
WORKDIR /app
COPY Gemfile Gemfile.lock ./
RUN bundle check || bundle install
COPY . ./
ENTRYPOINT ["./entrypoint.sh"]
Но каждый раз, когда я запускаю docker-compose run --build
и пытаюсь запустить мое приложение. Я получаю сообщение об ошибке:
could not translate host name "database" to address: Name or service not known
Я перепробовал все возможное, но ошибка все та же.
Кто-нибудь знает, как решить эту проблему?
Я знаю, что проблема возникает из-за того, что сценарии инициализации postgres не запущены. Я видел много вариантов в Интернете, и я попробовал все, но я все еще сталкиваюсь с той же ошибкой.
Любая помощь приветствуется
Спасибо