带有 Flutter web 的 localhost 无法与 docker 一起使用

Posted

技术标签:

【中文标题】带有 Flutter web 的 localhost 无法与 docker 一起使用【英文标题】:Localhost with Flutter web not working with docker 【发布时间】:2021-02-19 06:08:36 【问题描述】:

我试图运行一个 Flutter Web 应用程序,但我看不到它在 localhost 中运行。 我有这条消息正在运行,但我在浏览器中看不到它。

仪表板_1 | lib/main.dart 在 http://localhost:8080 提供服务

Dockerfile

FROM cirrusci/flutter AS build

RUN apt update && apt install -y nginx

RUN flutter channel beta
RUN flutter upgrade
RUN flutter config --enable-web

RUN mkdir /app/
COPY . /app/
WORKDIR /app/
RUN flutter build web

docker-compose.yml

version: '3.1'
services:
    dashboard:
        build: .
        restart: on-failure
        ports:
            - "8080:8080"
        command: >
            sh -c "flutter pub get && flutter run -d web-server --web-port 8080"

【问题讨论】:

如果应用程序在启动时打印出“listening on localhost”,则可能无法从容器外部访问它;您需要以某种方式重新配置它以收听(或将绑定地址设置为) 0.0.0.0 。参见例如Why 0.0.0.0 is working and localhost or 127.0.01 is not。 【参考方案1】:

我刚刚在docker-compose.yml 命令的末尾添加了--web-hostname 0.0.0.0,它可以工作。但现在不是localhost:8080,而是0.0.0.0:8080

所以docker-compose.yml 看起来像这样:

version: '3.1'
services:
    dashboard:
        build: .
        restart: always
        ports:
            - "8080:8080"
        command: >
            sh -c "flutter pub get && flutter run -d web-server --web-port 8080 --web-hostname 0.0.0.0"

【讨论】:

我遇到了同样的问题。解决了。谢谢!

以上是关于带有 Flutter web 的 localhost 无法与 docker 一起使用的主要内容,如果未能解决你的问题,请参考以下文章

Flutter 上传带有进度条的大文件。 App 和 Web 都支持

带有 Flutter web 的 localhost 无法与 docker 一起使用

带有 url 更新和超链接支持的 Flutter web 底部导航栏

使用带有 github 操作的 Flutter Web 时如何访问机密

带有 Firebase 托管的 Flutter web 无法从存储中加载图片

Flutter web 在带有深色主题的 Android 浏览器中的颜色错误