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
看到它。