我的图像有以下目录:C:\ MyDir。此目录包含一些在构建映像时创建的预定义内容。
我希望保持对此目录的更改,因此我尝试使用卷,但是当我执行容器创建时,C:\ MyDir为空。正如我从Docker文档中所理解的那样,如果我使用匿名卷,C:\ MyDir的实际内容(来自图像)将在创建期间反映在卷中,因此在容器内部应该存在,但是它们不是 - 似乎没有从图像中复制文件。当然,在容器内部写入一些新文件后,文件会反映在卷中。
关于如何实现这一点的任何想法? - 在保持图像中的原始文件的同时保持运行更改?
目前,Docker for Windows不支持此行为。这个问题目前正由GitHub上的Windows: cannot put data in volumes with docker build
问题进行跟踪。
目前,最接近的选择是做这样的事情:
#escape=`
FROM microsoft/windowsservercore
SHELL [ "powershell", "-Command" ]
COPY ".\starter-config" "C:\starter-config"
CMD if ((Get-ChildItem 'C:\config').Length -eq 0) {`
Copy-Item 'C:\starter-config\*' 'C:\config\';`
};`
& 'C:\RunTheServer.ps1'