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`
Up
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 dedb
apostgres
- Correr
docker-compose build
y luegodocker-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