从Dockerfile构建时是否可以挂载目录?

我正在尝试使用Dockerfile方法构建Docker镜像.最小化图像大小和层数对于此特定应用非常重要.但是,安装所需的转速相当大,我不想将其烘焙到图像中.似乎如果我在Dockerfile中使用ADD命令,rpm会被复制到图像中作为自己的图层,并且在我使用它之后无法将其删除.为了解决这个问题,我们只是在交互模式下使用-v volume mount选项运行容器来共享包含rpm的文件夹,但实际上并没有将rpm复制到容器中.有没有办法在使用Dockerfiles运行docker build命令时执行类似-v选项的操作? 最佳答案 同事提出的方法是使用docker run和docker commit:

docker run --name=$name --volume=$PWD/ToInstall/:/scratch --workdir=/scratch centos /scratch/install-script.sh
echo Status is $(docker wait $name)
echo
docker commit $name myname-base
docker rm -f $name

install-script.sh会是这样的:

set -eux
rpm -i myrpm1.rpm
rpm -i myrpm2.rpm

rm -rf /something-else-you-want-removed-from-layer

再见!

点赞