我可以将Docker容器中运行的脚本输出作为本地文件夹吗?

时间:2017-10-10 08:54:21

标签: docker

我正在创建一个Dockerfile,我的远程仓库被克隆,然后构建。

我可以将Docker容器中的输出文件夹映射到本地文件夹,以便在其中生成构建结果吗?

2 个答案:

答案 0 :(得分:2)

对于这样的事情,我不会使用docker build。相反,创建一个Docker镜像,其中包含构建项目所需的工具并将其用作“编译器”。最后,您希望能够:

$ docker run -v $(pwd):/output compiler

使用命令构建项目与在docker build期间执行该项目相比具有很多优势:

  • 您可以使用卷将本地目录装入Docker容器
  • 您可以轻松地重新运行构建过程的单个步骤,而无需重新运行整个构建
  • 您可以构建项目,并将构建输出用于其他图像(例如,构建Javascript项目并将其放入nginx图像)

答案 1 :(得分:0)

不是从容器中“映射”的。构建和映射/挂载并不真正共存(除非您使用rocker之类的东西来构建)。您可以从构建的图像中获取数据的副本。

通过tar

docker run --rm IMAGE tar -cf - /clone | tar -xvf - 

docker cp

CID=$(docker create IMAGE)
docker cp $CID:/clone ./
docker rm -f $CID

或者使用named volume,数据可以在Mountpoint中找到。

docker run --rm -v myclone:/clone IMAGE sleep 1
docker volume inspect myclone