我尝试使用docker部署我的angular-dart应用程序但无法使其工作。 一切都在OS X上运行,但在容器内部失败。
我的pubspec.yaml:
name: myapp
dependencies:
browser: any
angular: 1.0.0
transformers:
- angular
我的Dockerfile:
FROM stackbrew/ubuntu:13.10
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update
RUN apt-get install -y apt-transport-https curl git
RUN sh -c 'curl https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -'
RUN sh -c 'curl https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list > /etc/apt/sources.list.d/dart_stable.list'
RUN apt-get update
RUN apt-get install dart/stable
env PATH $PATH:/usr/lib/dart/bin
ADD frontend/pubspec.yaml /container/pubspec.yaml
ADD frontend/web /container/web
WORKDIR /container
RUN pub build
Dart按预期安装(Dart VM版本:1.7.2)
但它在pub build
处失败了:
Error on line 6, column 5 of pubspec.yaml: Error loading transformer: Illegal argument(s): sdkDirectory must be provided.
- angular
^^^^^^^
我发现这个https://github.com/angular/angular.dart/issues/1270建议将dartSDK路径添加到pubspec.yaml。哪个不可能是解决方案。
app应该可以在每台机器上运行..不仅仅是那些dartSdk路径与pubspec.yaml中的硬编码路径匹配的那些
还有其他方法可以解决这个问题吗?或解决方法?
答案 0 :(得分:0)
应在code_transformers
0.2.3 + 2(见http://dartbug.com/21225)
我不知道为什么这在某些系统上是必要的而不是在其他系统上,但这应该解决它。
transformers:
- angular:
sdkDirectory: "/usr/lib/dart"
另请参阅https://github.com/angular/angular.dart/issues/1270#issuecomment-64967674了解使用符号链接的替代方法。