docker's VOLUME isn't mounting host files

I have this docker file:

FROM node:0.10.38
VOLUME /opt/build
WORKDIR /opt/build
CMD node app.js

However, when I got to run the container, I get the error that app.js does not exist, specifically /opt/build/app.js does not exist. I’ve also tried ADD and COPY to do this, both say it can’t find anything, and I’d like to use VOLUME so it writes to the host’s log that is also in /opt/build. All desired files are in fact on the host as well. By the way, I’m using coreos as the host OS.

  • apt-get fails in Debian and Ubuntu based docker images
  • Is there a way to build docker image from two jars such as each jar locates in it's own layer
  • docker process not running in background
  • Resources are missing from JAR file after repackage with spring boot maven plugin
  • How-to run a node.js docker instance dropping into a shell that is auto-tailing logs
  • Starting TensorFlow on Docker on Google Cloud
  • Remote debugging path mapping
  • How to set subnet for Docker 1.9 overflow network?
  • Can I release some memory of a running Docker container on the fly?
  • dotnet core web api CI/CD pipeline with docker container
  • Getting 502 Bad Gateway while running the Django application within a docker container?
  • Docker: "Unknown instruction: VIRTUALENV'
  • One Solution collect form web for “docker's VOLUME isn't mounting host files”

    As documented in

    The VOLUME Dockerfile command is equivalent to -v /opt/build (“Adding a data volume”), not equivalent to -v /opt/build:/opt/build (“Mount a Host Directory as a Data Volume”); the latter is what you want here.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.