docker's VOLUME isn't mounting host files

I have this docker file:

FROM node:0.10.38
VOLUME /opt/build
WORKDIR /opt/build
EXPOSE 8080
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.

  • Migrating a service from one docker container to another with zero downtime
  • Run SpringBoot-based docker image return error message:Invalid or corrupt jarfile /app.jar
  • building docker 0.7.2 from sources on Ubuntu 12.04
  • Dealing with “HTTP request timed out. Exiting.” when building a large aspnet project for Docker
  • reconfigure timezone inside docker not working
  • Dockerfile doesn't run the CMD if the ENTRYPOINT isn't finished
  • Building an Android project from the command line with Docker
  • Deploy image to AWS Elastic Beanstalk from private Docker repo
  • How to run Docker commands as non-root user in Docker in Docker?
  • Docker exec - Write text to file in container
  • Docker bridge network, HTTP calls between containers VERY slow (after docker upgrade)
  • Trigger automatic build on dockerhub when some package is updated in official repository
  • One Solution collect form web for “docker's VOLUME isn't mounting host files”

    As documented in http://docs.docker.com/userguide/dockervolumes/#volume

    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.