Dockerfile构build卷更改不反映在已装载的本地文件夹? (OS X / boot2Docker)

使用docker docker-compose我有一个Dockerfile为Sails JS应用程序构build了一个环境。 在我的Dockerfile中,我使用sails新build了一个新的Sails脚手架项目sails new . (通过docker-compose映射到本地文件系统的文件夹)。

当我运行docker-compose build一切似乎都成功地build立。 我跟随一个docker-compose up -d在我的本地机器上docker-compose up -d 。 然后,我导航到主机上映射到我的本地文件夹,在主机(vm)我生成新的Sails项目的文件夹。 我期待看到在docker-compose build的主机上生成的所有文件都在我的本地文件夹中。 该文件夹是空白的 ? 这是怎么回事?

我的基本docker – 撰写文件:

 node: restart: "always" build: ./cnt/node ports: - "8080:8080" volumes: - ./src:/var/www/html # DEBUG: conveniently used to keep a container running command: /bin/bash -c 'tail -f /dev/null' 

注意: ./src是我的源代码所在的本地文件夹。 这被映射到HOST机器上的/ var / www / html(webroot)。

以下是用于生成Sails脚手架的./cnt/nodeDockerfile的最后几行:

 WORKDIR /var/www/html RUN sails new . RUN touch test.txt 

我执行的时候一切顺利(没有错误):

 docker-compose build docker-compose up -d 

完成后,我cd src来检查源代码目录,我期望看到我的Sails应用脚手架,但它是空的 。 有没有搞错?! 有没有错误? 我错过了什么?

这是与docker-compose文件做的事情,我build立的图像是通过build: ./cnt/node和LATER我build: ./cnt/node在撰写文件的卷? 在生成Sails脚手架之前,是否需要首先安装VOLUMES?

谢谢!

卷只在运行时间挂载, build专门devise为可重现的,因此在构build期间不允许外部使用。

您必须通过使用docker-compose run node ...来在主机上生成脚手架docker-compose run node ...