使用Docker构建AngularDart

时间:2014-11-24 19:34:26

标签: angularjs build dart docker

我尝试使用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中的硬编码路径匹配的那些

还有其他方法可以解决这个问题吗?或解决方法?

1 个答案:

答案 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了解使用符号链接的替代方法。