拥有一个纯 Dart 服务器应用程序,当前在类中使用“dart:mirrors”在运行时执行一些光反射工作。服务器应用程序在具有 x86 架构的开发 Ubuntu 机器中编译并运行得非常好,但是,相同的服务器应用程序无法使用最新的
arm64v8/dart:stable
Docker 映像作为 Ubuntu Raspberry pi 4 上的 Docker 构建的一部分进行编译。
Docker 构建错误:
---> Running in e4bdea430736\n\u001b[91merror: import of dart:mirrors is not supported in the current Dart runtime\n\u001b[0m\u001b[91mError: AOT compilation failed\n\u001b[0m\u001b[91mGenerating AOT snapshot failed!\u001b[0m\u001b[91m\n\u001b[0m
当前的 Arm64 架构版本的 Dart 是否不支持“dart:mirrors”?或者问题可能是其他的?
注意:服务器应用程序是纯 Dart 代码(即,据我所知,根本没有直接或间接通过依赖项使用 Flutter 代码)。
--- 更新 ---
Dockerfile编译说明:
FROM arm64v8/dart:stable AS build
WORKDIR /tmp
RUN dart pub get
RUN dart pub upgrade
RUN dart pub outdated
RUN dart compile exe /example.com/example_api/bin/server.dart -o /example.com/example_api/bin/server
独立的可执行文件(exe)有局限性。其中之一是不支持 dart:mirrors 和 dart:developer
请检查文档,您可以尝试 JIT 快照或内核子命令,因为它们没有该限制。