【发布时间】:2016-08-28 14:54:24
【问题描述】:
我想在我的工作过程中使用 docker 镜像。例如,我想使用 larryprice/sass 将我的 SASS 文件编译为 CSS。这张图很简单:
FROM ruby:2.2
RUN gem install sass
WORKDIR /tmp
ENTRYPOINT ["sass", "--watch", "/src"]
我使用的是 Windows 10、Docker 1.11 和 VirtualBox 5.0.16。
我的项目文件放在工作 SSD 上,映射到逻辑驱动器 D - D:\Projects\Foo\Bar\web\sass
所以,我的问题如下:当我从驱动器 D 将卷附加到容器时:(通过 $PWD 或通过 MINGW 样式 /D/Projects/Foo/Bar/web/sass 的完整路径)例如
cd /D/Projects/Foo/Bar/web
docker run --name sass -v $PWD/sass:/src --rm larryprice/sass
容器看不到任何 SASS 文件:
$ docker exec -i -t sass /bin/bash
root@541aabac9ceb:/tmp# ls -al /src/
total 4
drwxr-xr-x 2 root root 40 May 3 13:05 .
drwxr-xr-x 50 root root 4096 May 3 13:05 ..
但是当我从系统盘 (C:) 挂载一个卷时,一切正常:
$ docker run --name sass -v ~/sass:/src --rm larryprice/sass
[Listen warning]:
Listen will be polling for changes. Learn more at https://github.com/guard/listen#polling-fallback.
>>> Sass is watching for changes. Press Ctrl-C to stop.
>>> New template detected: ../src/test.sass
write /src/test.css
write /src/test.css.map
如何在 Windows 中从我需要的任何位置挂载卷?或者我做错了什么?
附言在路径中添加前导斜杠也不起作用:
docker run --name sass -v //d/Projects/Foo/Bar/web/sass:/src --rm larryprice/sass
【问题讨论】:
-
Docker 主机是在 Virtualbox 中运行的 VM,因此当您挂载卷时,它会在该 VM 中挂载一个文件夹,而不是 Windows 10 文件夹。您必须破解从 Windows 挂载文件夹的方法:stackoverflow.com/a/30589373/5388620。 Docker for Windows 旨在使卷安装无缝。
-
@ShanShan 感谢您的回答。看起来这与我刚刚发布的解决方案相同。
标签: docker sass docker-volume