无法在本地 pub-get 之后构建 docker dart-runtime 映像
Cant build a docker dart-runtime image after a local pub-get
我是 docker 的新手,我正在使用 arch 上的 google/dart-runtime 基础映像。
一切正常,除非我在构建图像之前执行 pub get(我需要它来完成 webstorm 代码)然后我必须删除每个 "package" 符号链接才能再次构建我的图像。
如果没有,我会得到这个错误:
sudo docker build -t foo/myapp .
Sending build context to Docker daemon 9.952 MB
Step 1 : FROM google/dart-runtime
# Executing 4 build triggers...
Step 1 : ADD pubspec.* /app/
stat packages/_discoveryapis_commons: no such file or directory
注意:_discoveryapis_commons是列表中的第一个包,我认为这与他没有特别的关系...
如何在容器外执行 pub get 而不会弄乱构建?
我不知道错误的确切原因,但我看到了两个 "workarounds":
- 使用
pub get --no-package-symlinks
。这仍然是实验性的,但只要您没有依赖于 packages
符号链接的外部工具,它就可以正常工作。此外,如果没有 packages
目录,test
包仍然无法完全工作。
- 创建一个
.dockerignore
文件,内容为 packages/*
另一种解决方法是在项目的根目录下创建一个 .dockerignore 文件并在其中写入:
*packages/*
我是 docker 的新手,我正在使用 arch 上的 google/dart-runtime 基础映像。
一切正常,除非我在构建图像之前执行 pub get(我需要它来完成 webstorm 代码)然后我必须删除每个 "package" 符号链接才能再次构建我的图像。
如果没有,我会得到这个错误:
sudo docker build -t foo/myapp .
Sending build context to Docker daemon 9.952 MB
Step 1 : FROM google/dart-runtime
# Executing 4 build triggers...
Step 1 : ADD pubspec.* /app/
stat packages/_discoveryapis_commons: no such file or directory
注意:_discoveryapis_commons是列表中的第一个包,我认为这与他没有特别的关系...
如何在容器外执行 pub get 而不会弄乱构建?
我不知道错误的确切原因,但我看到了两个 "workarounds":
- 使用
pub get --no-package-symlinks
。这仍然是实验性的,但只要您没有依赖于packages
符号链接的外部工具,它就可以正常工作。此外,如果没有packages
目录,test
包仍然无法完全工作。 - 创建一个
.dockerignore
文件,内容为packages/*
另一种解决方法是在项目的根目录下创建一个 .dockerignore 文件并在其中写入:
*packages/*