A la hora de crear el server en pgAdmin en vez de poner el IP podemos ingresar el nombre de servicio (el de docker compose)
Host name/ address: postgres
# docker-compose.yml version: '3.3' services: postgres: image: postgres:13 environment: - POSTGRES_DB=my_db - POSTGRES_USER=root - POSTGRES_PASSWORD=123456 ports: - '5432:5432' volumes: - ./postgres_data:/var/lib/postgresql/data pgadmin: 👈 add pgadmin image: dpage/pgadmin4 environment: - PGADMIN_DEFAULT_EMAIL=root@admin.com - PGADMIN_DEFAULT_PASSWORD=root ports: - "5050:80"
docker ps docker inspect ID
CREATE TABLE tasks ( id serial PRIMARY KEY, title VARCHAR ( 255 ) NOT NULL, completed boolean DEFAULT false );
# docker-compose.yml
version: '3.3'
services:
postgres:
image: postgres:13
environment:
- POSTGRES_DB=my_db
- POSTGRES_USER=root
- POSTGRES_PASSWORD=123456
ports:
- '5432:5432'
volumes:
- ./postgres_data:/var/lib/postgresql/data
pgadmin: 👈 add pgadmin
image: dpage/pgadmin4
environment:
- PGADMIN_DEFAULT_EMAIL=root@admin.com
- PGADMIN_DEFAULT_PASSWORD=root
ports:
- "5050:80"
docker ps
docker inspect ID
CREATE TABLE tasks (
id serial PRIMARY KEY,
title VARCHAR ( 255 ) NOT NULL,
completed boolean DEFAULT false
);
A la hora de crear el server en pgAdmin en vez de poner el IP podemos ingresar el nombre de servicio (el de docker compose)
Host name/ address: postgres
¿Por qué no usa el nombre del servicio en lugar de la ip? Tengo entendido que docker debería poder resolver de esa forma el host para la conexión.
// En en el navegador localhost:5050/browser
// Crear un servidor Object> create > server
// create-server En general: my_db
En connection: Host: la ip que del conentedor postgres username: root password: 123456
Alguien tiene este error?
error: role "root" does not exist
at Parser.parseErrorMessage (/Users/hector/Documents/platzi/node/nestjs/nestjs-typeorm/node_modules/pg-protocol/dist/parser.js:287:98)
at Parser.handlePacket (/Users/hector/Documents/platzi/node/nestjs/nestjs-typeorm/node_modules/pg-protocol/dist/parser.js:126:29)
at Parser.parse (/Users/hector/Documents/platzi/node/nestjs/nestjs-typeorm/node_modules/pg-protocol/dist/parser.js:39:38)
at Socket.<anonymous> (/Users/hector/Documents/platzi/node/nestjs/nestjs-typeorm/node_modules/pg-protocol/dist/index.js:11:42)
Estoy obteniendo el siguiente error, alguien tiene idea de porque? Segui el video tal cual y cuando ejecuto npm run start:dev pasa lo siguiente:
C:\Users\Usuario\Desktop\Node\NestProjects\nest-api\node_modules\pg-protocol\src\parser.ts:369
name === 'notice' ? new NoticeMessage(length, messageValue) : new DatabaseError(messageValue, length, name)
^
error: la autentificaci�n password fall� para el usuario �root2@admin.com�
at Parser.parseErrorMessage (C:\Users\Usuario\Desktop\Node\NestProjects\nest-api\node_modules\pg-protocol\src\parser.ts:369:69)
docker compose up -d pgadmin
docker facilita mucho el trabajo
Para entornos productivos también se recomienda tener los volumenes en la raiz del proyecto?
¿Alguien sabe como puedo hacer que pgAdmin se ejecute un poco más rápido? Le toma al rededor de 2 minutos para mostrarme la vista inicial...
Cómo hago para crear un servicio en docker para no instalar node.js?
Jose Daniel Barría Reyes
Santiago Forero
Moisés Abraham Croes Gómez
Everardo Sánchez
Nicolas Molina
ProfesorÁngel David Roque Ayala
Hector Cordova
José Garrillo
Diego Jose Chavez
Leo Amerio
Diego J. Ojeda
brandon james grimaldo moscote
Jonnathan Ramiro Juma Jara
Cayo Legal
Andres Prieto
Carlos Rodríguez
Daniel A.
Pablo Antipan Quiñenao
Juan David Merchán Torres
Marlon Iván De León Pérez
Lucia Aldana Castillo
Cesar González Caballero
Fernando Cordero
Eduardo Razo Cobián
Byron Saltos
Cristian Esquivel
Catalano Nicolas
Elio Rivas
A la hora de crear el server en pgAdmin en vez de poner el IP podemos ingresar el nombre de servicio (el de docker compose)
Host name/ address: postgres
Excelente dato! Ya estaba cansado de buscar la ip jaja
Efectivamente como comentas Jose Daniel, no es necesario usar la IP, con indicar el nombre del servicio (tal cual como lo nombramos en el archivo de docker-compose), esto se debe a que al user docker-compose se crea por defecto una red que conecta los servicios dentro del propio contenedor
¿Por qué no usa el nombre del servicio en lugar de la ip? Tengo entendido que docker debería poder resolver de esa forma el host para la conexión.
Si tienes razón docker resuelve por el nombre del servicio, pero esto si está dentro de la red interna de docker que crea entre contenedores y como el pgadmin está corriendo en otro contenedor en la misma red debería resolverlo.
Crear un servidor en pgAdmin
// En en el navegador localhost:5050/browser
// Crear un servidor Object> create > server
// create-server En general: my_db
En connection: Host: la ip que del conentedor postgres username: root password: 123456
Alguien tiene este error?
error: role "root" does not exist at Parser.parseErrorMessage (/Users/hector/Documents/platzi/node/nestjs/nestjs-typeorm/node_modules/pg-protocol/dist/parser.js:287:98) at Parser.handlePacket (/Users/hector/Documents/platzi/node/nestjs/nestjs-typeorm/node_modules/pg-protocol/dist/parser.js:126:29) at Parser.parse (/Users/hector/Documents/platzi/node/nestjs/nestjs-typeorm/node_modules/pg-protocol/dist/parser.js:39:38) at Socket.<anonymous> (/Users/hector/Documents/platzi/node/nestjs/nestjs-typeorm/node_modules/pg-protocol/dist/index.js:11:42)
Yo también lo tengo y no encuentro la solución
No te está reconociendo la conexión con el usuario root
Estoy obteniendo el siguiente error, alguien tiene idea de porque? Segui el video tal cual y cuando ejecuto npm run start:dev pasa lo siguiente:
C:\Users\Usuario\Desktop\Node\NestProjects\nest-api\node_modules\pg-protocol\src\parser.ts:369
name === 'notice' ? new NoticeMessage(length, messageValue) : new DatabaseError(messageValue, length, name)
^
error: la autentificaci�n password fall� para el usuario �root2@admin.com�
at Parser.parseErrorMessage (C:\Users\Usuario\Desktop\Node\NestProjects\nest-api\node_modules\pg-protocol\src\parser.ts:369:69)
¿Lograste resolverlo? Tengo el mismo problema.
docker compose up -d pgadmin
docker facilita mucho el trabajo
Para entornos productivos también se recomienda tener los volumenes en la raiz del proyecto?
¿Alguien sabe como puedo hacer que pgAdmin se ejecute un poco más rápido? Le toma al rededor de 2 minutos para mostrarme la vista inicial...
Cómo hago para crear un servicio en docker para no instalar node.js?
como se hace para no tener que repetir este proceso y tener que crear las tablas cada vez que bajamos docker?
Hola Daniel! Lo que puedes hacer es crear un archivo SQL con la estructura de tu base de datos y lo montas en la imagen de docker. Asi cuando parte, crea la base de datos. La documentacion de docker indica como hacer esto para postgres, here
Ahora bien, un ORM, que se explica en el siguiente modulo de este mismo curso; tambien te puede ayudar con esto!
Saludos!
Hola 👋 Para eso son los volumenes, para tener persistencia de los datos del container de docker. 🐳
Si definimos y asignamos un network de forma explicita es más sencilla la configuración de pg admin
networks: nest-postgres: driver: bridge services: db: image: postgres:14-alpine container_name: nest-postgres restart: always environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: nest-store ports: - "5432:5432" volumes: - postgres-data:/var/lib/postgresql/data networks: - nest-postgres pgadmin: image: dpage/pgadmin4 container_name: pgadmin restart: always environment: PGADMIN_DEFAULT_EMAIL: admin@mail.com PGADMIN_DEFAULT_PASSWORD: admin ports: - "5050:80" volumes: - pgadmin-data:/var/lib/pgadmin networks: - nest-postgres volumes: postgres-data: pgadmin-data:
psql -h localhost -d my_db -U root
si le slanza errores, mejor instalen asi:
Siempre vengo revisito este gran curso!!
Mi docker-compose.yml utilizando variables de entorno
version: '3.3' services: postgres: image: postgres:13 env_file: - .env ports: - '5432:5432' volumes: - ./postgres_data:/var/lib/postgresql/data pgadmin: image: dpage/pgadmin4 env_file: - .env ports: - '5050:80' ```version: '3.3' services: postgres: image: postgres:13 env\_file: - .env ports: - '5432:5432' volumes: - ./postgres\_data:/var/lib/postgresql/data pgadmin: image: dpage/pgadmin4 env\_file: - .env ports: - '5050:80'
yo uso dbeaver como admin grafico para las bd, tiene una version community, compatible con varios motores de base de datos.
Crear un servidor en pgAdmin // En en el navegador localhost:5050/browser
// Crear un servidor Object> create > server
// create-server En general: my_db
En connection: Host: la ip que del conentedor postgres username: root password: 123456
Tambien pueden poner lo siguiente en la url
host.docker.internal
grandioso!