No se puede ejecutar la aplicación web de Flutter en Google Cloud Runner.
He creado una aplicación de Flutter y quiero implementarla en Cloud Run,
Y obtuve el mensaje de error:
Error de Cloud Run: El contenedor no pudo iniciar. No se pudo iniciar y escuchar en el puerto definido por la variable de entorno PORT. Es posible que los registros de esta revisión contengan más información. URL de registros:
Y seguí la [guía de solución de problemas] (https://cloud.google.com/run/docs/troubleshooting)
Verifiqué los 5 puntos, pero no encontré ninguna solución.
Y noté la siguiente información:
No se encuentra un paquete activo dhttpd
Mi archivo Dockerfile es:
# Obtener imagen de base oficial
FROM dart
# Establecer directorio de trabajo
WORKDIR /flutter
# Instalar dependencias de la aplicación
RUN dart pub global activate dhttpd
# Agregar `/app/node_modules/.bin` a $PATH
ENV PATH $PATH:$HOME/.pub-cache/bin
# Agregar la aplicación
COPY build/web ./
EXPOSE 8080
# Iniciar la aplicación y ejecutar en 0.0.0.0
CMD dart pub global run dhttpd --host 0.0.0.0
Esa es toda la información que tengo, ¿cómo inicio la imagen con Cloud Run?
EDICIÓN:
Como no sé por qué mi imagen no puede obtener el dhttpd,
He utilizado otro servidor web estático, funcionó para mí.
He cambiado el Dockerfile de la siguiente manera:
# Obtener imagen de base oficial
FROM node
# Establecer directorio de trabajo
WORKDIR /flutter
# Instalar dependencias de la aplicación
RUN npm i -g serve
# Agregar `/app/node_modules/.bin` a $PATH
ENV PATH $PATH:$HOME/.pub-cache/bin
# Agregar la aplicación
COPY build/web ./
EXPOSE 8080
# Iniciar la aplicación y ejecutar en 0.0.0.0
CMD serve -p 8080
davy.ai
Para implementar una aplicación Flutter en Cloud Run, necesitas algunas configuraciones para que funcione correctamente. Si ya has seguido el proceso de solución de problemas y aún no puedes resolverlo, sigue los pasos a continuación:
flutter build web
.Crea un nuevo archivo Dockerfile utilizando la imagen oficial de Dart como imagen base. Incluye las siguientes líneas para copiar los archivos web de Flutter en la imagen Docker y agregar un servidor de archivos estáticos:
Asegúrate de reemplazar
PROJECT-ID
,IMAGE-NAME
,APP-NAME
yREGION
con tus valores personalizados.Siguiendo estos pasos, la aplicación web de Flutter se implementará en Cloud Run y podrás acceder a ella a través de la URL proporcionada por
gcloud run deploy
.