IIC2143-2019-2/proyecto

Error docker-compose run web rails db:create

Closed this issue · 15 comments

Hola! Todavia tengo el mismo error que he tenido desde el principio, he tratado de todo de lo que sale en google y no me logra funcionar. Los comandos que corro son :
sudo docker-compose build
sudo docker-compose run web rails db:create
y ahí es cuando salta el error :
could not translate host name "db" to address: Name or service not known Couldn't create 'Grupo41-proyecto_development' database. Please check your configuration. rake aborted! PG::ConnectionBad: could not translate host name "db" to address: Name or service not known
Adjunto archivos relacionados en comentario abajo.
Agradeceria mucho la ayuda! ya que todavia no logro hacerlo funcionar ( he probado con 3 computadores diferentes(2 macs y uno ubuntu) y el ubuntu lo instalé denuevo en caso de que funcionara y nada), ya no se que hacer.
PD: la app ya fue creada

Dockerfile

`FROM ruby:2.6-rc
RUN apt-get update &&
# add support to unicode chars from keyboard: ç,ã,ô:
apt-get install -y locales &&
echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && /usr/sbin/locale-gen &&
rm -rf /var/lib/apt/lists/*
ENV LANG en_US.UTF-8
RUN apt-get update -qq && apt-get install -y postgresql-client
RUN curl -sL https://deb.nodesource.com/setup_10.x | bash -
&& apt-get install -y nodejs

ENV APP_HOME /Grupo41-proyecto

RUN mkdir $APP_HOME
WORKDIR $APP_HOME
COPY Gemfile $APP_HOME/Gemfile
COPY Gemfile.lock $APP_HOME/Gemfile.lock
RUN bundle install
COPY . $APP_HOME

Add a script to be executed every time the container starts.

COPY entrypoint.sh /usr/bin/
RUN chmod +x /usr/bin/entrypoint.sh
ENTRYPOINT ["entrypoint.sh"]
EXPOSE 3000

Start the main process.

CMD ["rails", "server", "-b", "0.0.0.0"]`

docker-compose.yml

version: '3' services: db: image: postgres volumes: - ./tmp/db:/var/lib/postgresql/data web: build: . command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'" volumes: - .:/Grupo41-proyecto ports: - "3000:3000" depends_on: - db

./config/database.yml

`default: &default
adapter: postgresql
encoding: unicode
host: db
username: postgres
password:
pool: 5

development:
<<: *default
database: Grupo41-proyecto_development

test:
<<: *default
database: Grupo41-proyecto_test`

Me pasa exactamente lo mismo

Me empezó a pasar lo mismo

a mi igual

Hola a todos!

Revisando un poco las diferencias con la configuración del semestre pasado, hay algunas cosas que podrían estar causando este problema, traten haciendo los dos pasos que pondré a continuación y respondan de vuelta si les sirvió haciendo solo el primer cambio o si fue necesario el primero y segundo.

Primer paso

  • Cambiar en el archivo config/database.yml, el host de db a postgres
  • Correr docker-compose build y luego docker-compose run web rails db:create (no olviden el sudo los de linux).

Segundo paso

  • Cambiar en el archivo docker-compose.yml, la sección de db. Actualmente está así:
...
db:
    image: postgres
    volumes:
      - ./tmp/db:/var/lib/postgresql/data
...

Cambienlo a esto:

...
db:
    image: postgres
    ports:
      - "5432"
...

Estaré atento a como les va. Ánimo con la entrega!

Hola, probé los 2 pasos y me sale el mismo error :(

a mi tampoco me funciono!

hola, esto me dijeron que funciona:

docker-compose run web rails db:drop
docker-compose run web rails db:create

Alguien pudo solucionar el error con los comandos de @nissimergas ?

Hola! tampoco me funcionó con ambos comandos de Nissim, me sigue tirando el error de PG ConnectionBad: could not translate host name "db" to address: Name or service not known incluso con el comando de db:drop

Ahora me funcionó conectarme a localhost:3000! La verdad no se si fue suma de todo o lo último que hice para solucionar muchos errores del docker-compose run web rails db:create :
En el repositorio de mi app
En config/environments/development.rb agregar la línea:
config.web_console.whiny_requests = false
(ya que me tiraba error de que no permitia la conexión de mi ip)
En la consola, agregar directorios que faltaban
mkdir /usr/local/var/postgres/{pg_tblspc,pg_twophase,pg_stat,pg_stat_tmp,pg_replslot,pg_snap
(Error que tiraba docker-compose run web rails ...)
Luego
sudo touch /usr/local/var/postgres/{pg_tblspc,pg_twophase,pg_stat,pg_stat_tmp,pg_replslot,pg_snapshots}/.keep
(de acuerdo a la página)

Luego en la consola, en el directorio de la app:
sudo docker-compose up --build
y abre localhost:3000
si no funciona, cierro el localhost, y en la consola Control C (asi cierras el server, o por ultimo cierra la consola y vuelve a abrir)
Si no probar con
sudo docker-compose build
sudo docker-compose run web rails db:test
sudo docker-compose run web rails db:create
si sale, created database "grupoXX_development" es porque funcionó
luego
sudo docker-compose up
y abre localhost:3000
y ojala, deberia funcionar, funcionó para mí

links de los multiples problemas que tiraba en docker-compose run web rails db:create

Directorios faltantes:
https://stackoverflow.com/questions/25970132/pg-tblspc-missing-after-installation-of-latest-version-of-os-x-yosemite-or-el
Ip bloqueada:
https://solidfoundationwebdev.com/blog/posts/cannot-render-console-from-some-ip-with-rails

Yo tampoco he podido solucionarlo

Lo pude solucionar con los siguientes comandos:
rm -rf tmp/*
docker rm $(docker ps -q -a) -f
docker rmi $(docker images -q) -f

Lo pude solucionar con los siguientes comandos:
rm -rf tmp/*
docker rm $(docker ps -q -a) -f
docker rmi $(docker images -q) -f

esto me sirvió gracias @tomcan127 sos un crack