在docker-compose.yml中,命名一个volume
docker-compose.yml
12345678
services: app: image: nextcloud:fpm-alpine volumes: - nextcloud:/var/www/htmlvolumes: nextcloud:
两个service共享同一个目录
12345678910111213
services: app: image: nextcloud:fpm-alpine volumes: - nextcloud:/var/www/html web: build: ./web volumes: - nextcloud:/var/www/html:rovolumes: nextcloud:
使用bind mount绑定本地(开发)目录
12345678910
services: app: image: nextcloud:fpm-alpine volumes: - ./src:/var/www/html # 本地路径:contianer中路径 web: build: ./web volumes: - ./src:/var/www/html:ro
避免两个volume重复指定,可以使用yaml文件的规范,参考 YAML参考
123456789
services: app: image: nextcloud:fpm-alpine volumes: &local-dir # 创建ancher,下面可以使用*前缀引用 - ./src:/var/www/html web: build: ./web volumes: *local-dir
几个命令
1234
docker-compose up --force-recreate # 重新创建contianerdocker-compose down -v # Stops containers and removes containers, networks, volumes, and images created by up # -v Remove named volumes declared in the `volumes` section
在mac下这个bind mount目前还不行,太慢了,github上这个slow的issue一直在open。当前解决方案是避免使用bind mount,只使用named volume,volume速度和那后,可以使用mutagen来创建一个session同步两个目录