我当前项目中的集成测试需要一段时间才能运行,能够在本地使用Docker运行它们并在运行时继续使用代码会很好。我现在的计划是创建一个执行以下操作的脚本:
/tmp
在我开始创建这个脚本之前,我想知道Docker是否支持挂载" immutable"来自主机的卷,所以我不需要手动将文件复制到/tmp
?为了澄清,我想将代码安装到Docker中,但我不想在主机和容器之间共享文件夹。相反,我希望主机中所做的更改留在主机上,并且容器中的更改留在容器中(有点像"结构共享"在Clojure的数据结构中)
如果这不可能,那么我未来的脚本看起来是个好主意还是可以改进?
答案 0 :(得分:1)
你可以mount a host volume in read-only mode:
docker run -v /tmp/host-randomtest:/container-testdir:ro
注意最后的ro
。您也可以指定rw
进行读写,这是默认值。
从主机装入卷后,您可以将所需的文件复制到容器中,例如cp -a /container-testdir /writable-testdir
或者,您可以ADD
将Dockerfile
作为docker build
和{{1}}的一部分从主机进入容器的文件。