gpt4 book ai didi

google-app-engine - docker -v 和符号链接(symbolic link)

转载 作者:行者123 更新时间:2023-12-02 21:29:12 24 4
gpt4 key购买 nike

我在尝试创建 Dart 服务器的 Windows 机器上。我使用 ADD 的文件成功构建和镜像并运行容器。然而,每次我不想测试我的代码时构建一个镜像是很痛苦的,所以我认为最好用 -v 挂载我的文件。命令,因为它们是在运行时从我的主机实时访问的。

问题是 dart 的包文件夹位于 /bin/packages真的是一个符号链接(symbolic link)(如果它在 Windows 中称为符号链接(symbolic link))和 docker 或 boot2docker 或任何似乎无法通过它的东西,我得到了

Protocol error, errno = 71

我在 GAE 和 gcloud 中使用过 dart命令以某种方式创建了容器,将文件放入其中并对主机文件中的更改使用react。我不知道他们是否使用了 -v选项(正如我正在尝试的那样),或者他们有一些自动生成器,使用 ADD 使用您的文件创建新图像并运行它,无论如何这似乎有效。

更多信息

我一直在使用我从 google/dart 修改的 Dockerfile
FROM google/dart

RUN ln -s /usr/lib/dart /usr/lib/dart/bin/dart-sdk

WORKDIR /app

# ADD pubspec.* /app/
# RUN pub get
# ADD . /app
# RUN pub get --offline

WORKDIR /app/bin

ENTRYPOINT dart
CMD server.dart

如您所见,其中大部分都被注释掉了,因为而不是 ADD我想使用 -v .但是,您会注意到,在此脚本中,它们会执行 pub get两次,这有效地创建了包 里面 容器。

使用 -v它无法访问这些包,因为它们位于主机符号链接(symbolic link)后面。但是, pub get实际上需要一段时间,因为它安装标准包以及您添加的依赖项。这是唯一的方法吗?

最佳答案

据我所知,您需要将 Windows 文件夹作为共享文件夹添加到 VirtualBox 才能使用 -v 挂载它使用 boot2docker .
gcloud不使用 -v ,它使用这些 Dockerfile https://github.com/dart-lang/dart_docker .
另见 https://www.dartlang.org/server/google-cloud-platform/app-engine/setup.html , https://www.dartlang.org/server/google-cloud-platform/app-engine/run.htmlgclould监视源目录的更改并重建镜像。

关于google-app-engine - docker -v 和符号链接(symbolic link),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27736831/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com