Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VOLUME and docker volume plugins don't mix #78

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

peebles
Copy link

@peebles peebles commented Mar 20, 2017

When using a docker volume plugin, the volumes get created at run time, and get mounted over the directories listed in VOLUME, so none of the installed files are there any more!

All I did was remove the VOLUME directive in Dockerfile.

…e, and get mounted over the directories listed in VOLUME, so none of the installed files are there any more!

All I did was remove the VOLUME directive in Dockerfile.
@janpapenbrock
Copy link

Can you provide an example for this?

@peebles
Copy link
Author

peebles commented Mar 20, 2017

I am using docker daemon on AWS version 17.03.0-ce and docker client on my laptop 1.9.1. I am using docker-compose 1.5.1 with the "version 1" syntax. I am using rancher/convoy as a volume plugin, which creates persistent volumes with AWS EBS.

In my docker-compose, I have something like:

volume_driver: convoy
volumes:
  - data:/opt/graphite/storage

During build time, that volume does not exist. Only when doing the "up -d" is the volume created and mounted on the server. In addition four other EBS volumes are created corresponding to the directories listed in the VOLUME directive, and are mounted into the container. These have random looking strings as volume names. They are mounted over the data that is already there, so that /opt/graphite/conf and /etc/nginx for example, are empty.

And now that I think about it, even though it appears to work in "ordinary" circumstances, I am not sure what it even means to do something like:

COPY nginx.conf /etc/nginx/nginx.conf
VOLUME ["/etc/nginx"]

Wouldn't the image have a file in /etc/nginx? What does it mean then at runtime when a consumer decides to do something like "volumes_from"? Wouldn't the content of /etc/nginx always get overlayed with something else?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants