Docker镜像(基于Windows)包含C:\App
的应用程序目录。在该目录中包含多个子文件夹和文件,包括名为process.bat
的批处理文件。 Dockerfile(用于构建图像)的结尾如下:
ENTRYPOINT [ "C:\\App\\process.bat" ]
当我使用命令docker run company/app
实例化此图像时,批处理文件会运行,但在引用C:\App
下的其他文件时会失败。从本质上讲,工作目录仍然是Docker容器入口点的C:\
。
有没有办法在Dockerfile中设置工作目录?确实存在几种替代方案:
-w C:\App
添加到泊坞窗运行cd /D C:\App
但是有没有办法在Dockerfile中指定工作目录?
答案 0 :(得分:20)
WORKDIR /App
是您可以在dockerfile中使用的命令来更改工作目录。
答案 1 :(得分:4)
如果/App
是已装入的卷,那么您应在VOLUME /App
之前指定WORKDIR
以将其与ENTRYPOINT
一起使用,否则ENTRYPOINT
无法看到它:
VOLUME ["/App"]
WORKDIR /App
ENTRYPOINT ["sh", "start.sh"]
start.sh
位于/App
目录中。