Hello,
I couldn't find a way to use the "nocopy" flag when using a named volume, as docker do in its "docker run" command :
-v, --volume=[host-src:]container-dest[:
]: Bind mount a volume.
The comma-delimitedoptions
are [rw|ro], [z|Z],
[[r]shared|[r]slave|[r]private], and [nocopy].
The 'host-src' is an absolute path or a name value.If neither 'rw' or 'ro' is specified then the volume is mounted in
read-write mode.The
nocopy
modes is used to disable automatic copying requested volume
path in the container to the volume storage location.
For named volumes,copy
is the default mode. Copy modes are not supported
for bind-mounted volumes.--volumes-from="": Mount all volumes from the given container(s)
Is there a way to reproduce this behavior in the docker-compose file ?
If not, do you think that could be a feature to add ?
Hi!
Something like that should work as far as I can tell:
version: "2"
services:
web:
image: busybox
command: top
volumes:
- mydata:/data:nocopy
volumes:
mydata: {}
Hello shin-, thanks for answering.
You're right, it seems that ":nocopy" flag works !
However it cannot be added in conjunction with ":ro" or "rw"
volumes:
- "wp-files:/usr/share/nginx/html:ro:nocopy"
gives
ERROR: Volume wp-files:/usr/share/nginx/html:ro:nocopy has incorrect format, should be external:internal[:mode]
(the same for :nocopy:ro)
But that could be in another question/github issue I guess
Options should be comma delimited.
"wp-files:/usr/share/nginx/html:ro,nocopy"
Should work for you.
"wp-files:/usr/share/nginx/html:ro,nocopy"
Thanks guys! And plus I put the syntax from an official doc to make it sure. ↓
https://docs.docker.com/storage/volumes/
The third field is optional, and is a comma-separated list of options, such as ro. These options are discussed below.
Most helpful comment
Options should be comma delimited.
"wp-files:/usr/share/nginx/html:ro,nocopy"
Should work for you.