Dockerfile VOLUME 定义挂载项目树

Dockerfile VOLUME definition to mount project tree

我正在尝试使用 Docker 自动创建开发环境和部署。这是我的 Docker 文件的最小示例:

FROM java
VOLUME .:/hello

并将其构建为

docker build -t hello-server .

然后我 运行 图片 hello-server,访问它的 /hello 目录,它存在,但是是空的。

但是当我运行图像使用

docker run -i -t -v $(pwd):/hello2 hello-server

/hello2包含README,Dockerfile和项目的其他文件。如何从 Docker 文件正确定义卷挂载?

这行不通:

VOLUME .:/hello

您不能在 Dockerfile 中指定卷的主机目录。原因是它不能携带。

要么使用 COPY 将文件复制到映像中,要么就像您一直在做的那样在 运行 时安装卷。