#Ayuda con Docker
1 messages · Page 1 of 1 (latest)
a ver
Si estoy entendiendo bien, tienes el back-end separado del front-end y tienes una bd, cada uno en un contenedor distinto cierto?
Si.
Según la imagen que pusiste acá #💬╏chat-general message hay algunas cosas que estás referenciando con el nombre del contendor, esto no te va a dar problema desde el backend a la base de datos ya que la comunicacion entre estos dos es directa
pero me viene la duda con el frontend, recuerda que el frontend se ejecuta en tu navegador, es decir el host, y el host no tiene idea de los aliases de docker
si tienes el puerto del backend como 3001 y del front como 3000
deberias poder accesar al front desde localhost 3000
y deberias poder hacer peticiones al backend desde localhost 3001
Sisisi, o sea yo puedo acceder al puerto 3000, pero em sale este error. Como que no encuentra el puerto 3001 en el cual se estan haciendo las llamadas.
puedes hacer peticiones al back desde algo como postman externo al navegador?
Sisisis, tengo swagger
el servidor y la base de datos estan corriendo sin ningun problema.
Y es mas puedo ejecutar el servidor y la base de datos desde el contendor y llamar a los endpoint desde el cliente (ejecutandos een la maquina local)
El problema es cuando lo hago desd el contendor.
Como que no reconoce el puerto 3001
como tienes definida la url del backend en tu front?
Pero el tema es que el docker espera en si el server, o sea para que se ejcute dentro del contendor. El de localhost es para la maquina local.
a ver espera
prueba con localhost, como digo, el codigo aunque este en un contenedor se esta ejecutando en el navegador, lo que esta conectando con el back es el navegador, no de un container a otro
si no tienes esa otra alternativa, de la imagen, si la quieres probar
O sea que deberia cambiar tambien en el docker-compose lo de server:3001, a localhost 3001?
cuando ejecutas una web en frontend, se esta ejecutando en tu navegador que es el host, este no sabe de aliases de docker, por eso te digo que hagas la prueba.
particularmente con next js no se si estas haciendo cosas de "backend", que alli si tendrias que usar alias para que sea backend con backend
volvio a salir jajaja
Vos decis si estoy haciendo uso de los server actions?
aja si lo vas a declarar en el docker compose debes hacerlo como la imagen que te mande
host.docker.internalinstead oflocalhost
cuando son server actions si es backend contra backend entonces si es contenedor contra contenedor
DIgamos, si. Estoy haciendo uso de server actions, en ciertas partes de la aplicacion.
bueno en teoria con host.docker.internal el debe redireccionar todo a como si lo estuvieras accesando desde el host
docker con eso hace el link al ip de la red bridge que hiciste
todos los contenedores y el host tienen una ip (solo que es dinamica y cambia cada vez que reinicias los contenedores)
el host.docker.internal tambien debería adherirlo a la variable de entorno?
generalmente es algo asi como 172.18.0.x o algo asi
considero que si, seria la forma de decirle que todo tanto lo que es de front, como lo de back con tus server actions lo direccione por alli independientemente
la gran pregunta es si el navegador va a entender eso XD
no se como lo maneja next directamente en caso de esa diferencia
seguimos en la misma
no tengo idea de como tienes estructurado tu codigo, pero creo que la solucion va a ser separar dos url en tu front, una para las cosas de front que se ejecutan en el navegador y otra para tus server actions
eso ya es un particular de next que no te sabria ayudar como resolver
usar localhost:3001 para las cosas que se ejecutan realmente de front en el navegador, y usar la direccion de docker para las server actions
bien 👍