【问题标题】:Dart Server for Flutter on Web in DockerDocker 中用于 Web 上 Flutter 的 Dart 服务器
【发布时间】:2021-05-17 17:37:10
【问题描述】:

我正在尝试构建一个可以为 Flutter Web 应用程序提供服务的 dart 服务器。我尝试了几种不同的方法,构建from scratch,使用shelf(和shelf_static),最后是GetX,但我无法让它们在docker容器中运行。例如,我目前有一个简单的结构:

-myApp/
  -web/
  -Dockerfile
  -pubspec.yaml
  -server.dart

我使用了基本的 Flutter 演示应用程序(带有浮动按钮和计数器),添加了 Web 支持,然后做了 $ flutter build web,并获取了 build/web 文件夹并将其复制到这里作为 web.xml 文件。 pubspec 只包含 get_server 和 build_runner,server.dart 文件只有:

import 'package:get_server/get_server.dart';
void main() => runApp(GetServer(home: FolderWidget('web')));

然后我的 Dockerfile 看起来像这样(基于this github repo):

################
FROM google/dart:2.10

RUN apt -y update && apt -y upgrade

WORKDIR /app
COPY pubspec.yaml /app/pubspec.yaml
RUN dart pub get
COPY . .
RUN dart pub get --offline

RUN dart pub run build_runner build --delete-conflicting-outputs
RUN dart compile exe /app/server.dart -o /app/server

########################
FROM subfuzion/dart:slim
COPY --from=0 /app /app
EXPOSE 8080
ENTRYPOINT ["/app/server"]

如果我从命令行运行服务器:

$ dart server.dart

它运行完美。但如果我构建 docker 并运行它:

$ docker build -t myApp .
$ docker run -d -p 8080:8080 myapp

它只是说找不到该页面。有谁知道我做错了什么?或者有关于如何使用 Dart 服务器托管 Flutter Web 应用程序的建议(不一定是 GetX)。

【问题讨论】:

    标签: docker flutter dart server flutter-web


    【解决方案1】:

    原来我只是一个白痴,并试图从我的计算机上与我的 docker 容器中相同的目录提供网站服务(惊喜!那不起作用)。 我已将我的 server.dart 文件更改为:

    import 'package:get_server/get_server.dart';
    void main() => runApp(GetServer(home: FolderWidget('./app/web')));
    

    我的 docker 文件现在是:

    ################
    FROM google/dart:2.10
    
    WORKDIR /app
    COPY pubspec.yaml /app/pubspec.yaml
    RUN dart pub get
    COPY . .
    RUN dart pub get --offline
    RUN dart compile exe bin/server.dart -o bin/server
    
    ########################
    FROM subfuzion/dart:slim
    COPY --from=0 /app/bin/server /app/bin/server
    COPY --from=0 /app/web /app/web
    EXPOSE 8080
    ENTRYPOINT ["/app/bin/server"]
    

    它就像一个魅力。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-04
      • 1970-01-01
      相关资源
      最近更新 更多