Docker-compose卷不会复制任何文件

我在Fedora 23中,我使用docker-compose来构build两个容器:app和db。 我想使用该docker作为我的开发环境,但必须执行docker构build和每次我改变代码是不好的。 所以我search和尝试“卷”选项,但我的代码不会被复制到docker。

当我运行dockerbuild设,一个“运行ls”命令不列出“应用程序”文件夹或它的任何文件。

Obs 。:在根文件夹中有:docker-compose.yml,.gitignore,app(文件夹),db(文件夹)

Obs¹ :如果我删除了卷和working_dir选项,而是在应用程序/ Dockerfile中使用“COPY。/ app”命令,它的工作原理和我的应用程序正在运行,但是我希望它同步我的代码。

任何人都知道如何使其工作?

我的docker撰写文件是:

version: '2' services: app: build: ./app ports: - "3000:3000" depends_on: - db environment: - DATABASE_HOST=db - DATABASE_USER=myuser - DATABASE_PASSWORD=mypass - DATABASE_NAME=dbusuarios - PORT=3000 volumes: - ./app:/app working_dir: /app db: build: ./db environment: - MYSQL_ROOT_PASSWORD=123 - MYSQL_DATABASE=dbusuarios - MYSQL_USER=myuser - MYSQL_PASSWORD=mypass 

在这里你可以看到我的应用程序容器Dockerfile: https ://gist.github.com/jradesenv/d3b5c09f2fcf3a41f392d665e4ca0fb9

下面是Dockerfile中RUN ls命令的输出:

bin boot dev等主lib lib64 media mnt opt proc root run sbin srv sys tmp usr var

卷被安装在一个容器中。 Dockerfile用于创build图像,该图像用于创build容器。 这意味着在你的Dockerfile中的一个RUN ls将在卷被挂载之前显示文件系统。 如果您需要这些文件作为您的构build的图像的一部分来完成,他们不应该在卷中,你需要复制它们与您所描述的COPY命令。 如果你只是想要certificate这些文件被安装在正在运行的容器中,请运行一个

 docker exec $container_name ls -l / 

其中$container_name将类似于${folder_name}_app_1 ,您将在${folder_name}_app_1 docker ps看到它。