【发布时间】:2017-09-22 08:01:05
【问题描述】:
在我的 docker-compose 中,我将一个本地文件夹安装到 Docker 的文件夹中。我可以在 Dockerfile 中使用 CMD 查看和使用已安装的卷,但不能使用 RUN。 RUN 似乎是文档中完全干净的层。有没有办法让 RUN 能够使用 docker-compose 文件中指定的挂载点?
【问题讨论】:
标签: docker docker-compose
在我的 docker-compose 中,我将一个本地文件夹安装到 Docker 的文件夹中。我可以在 Dockerfile 中使用 CMD 查看和使用已安装的卷,但不能使用 RUN。 RUN 似乎是文档中完全干净的层。有没有办法让 RUN 能够使用 docker-compose 文件中指定的挂载点?
【问题讨论】:
标签: docker docker-compose
无论您使用docker 本身、docker-compose 还是其他工具,您都无法在docker build 过程中挂载卷。整个想法是 build 过程应该尽可能独立于您的环境,以便生成的图像不依赖于您的本地系统并且可以更轻松地共享。
通常有替代方法可以解决您尝试解决的任何问题,而无需尝试将数据公开到您的构建过程中。
【讨论】:
其实CMD和RUN有很大区别
CMD 用于提供启动容器时执行的参数或命令
RUN 用于提供创建新层的命令。
简而言之:在构建步骤期间(执行RUN 时)卷不可用。
Docker 容器有两种方式提供“外部”文件:
查看CMD:
查看RUN:
上下文见:
【讨论】: