Docker node development environment on windows

I’m developing a simple NodeJS application. I use docker and it makes it very easy to deploy to production.
This is my Dockerfile:

FROM node
COPY . /src
RUN cd /src; npm install
EXPOSE  3000
CMD ["node", "/src/express.js"]

On my development environment (windows, boot2Docker) Docker is slowing me down, because for every small change I do, I have to re-build the Docker image and run the container and it takes a few minutes.
I couldn’t find a way to simply copy my source files from the host to the docker container. Is there an easy way to do it? Should I use plain nodeJS on my development environment and only use Docker in production?

  • Transferring Docker run script to compose file - postgres doesn't run?
  • How best to connect containers within Docker
  • Load kernel module from mac os sierra host to a docker container
  • Docker Engine command run --blkio-weight doesn't work
  • dotnet run won't use bower packages
  • Why doesn't postgres official docker repo start db service at build time?
  • Thanks!

  • Setup private docker registry with anonymous pull access
  • docker postgres failed to start with specified port
  • Nginx docker (13: Permission denied) while logging request to mounted volume
  • Why does Yesod's TestImport module ignoreEnv in loadAppSettings?
  • What is the concept of Ambassador in distributed systems?
  • Docker on Windows randomly crashes with 0xc0370106 when DockerFile has too many commands
  • 2 Solutions collect form web for “Docker node development environment on windows”

    At least during development, you could share a folder from your windows OS with docker – would make the code-debug cycle a lot quicker.

    Mount a Host Directory as a Data Volume:
    https://docs.docker.com/userguide/dockervolumes/

    (about 1/2 way down the page)

    Try the following:

    FROM node
    COPY ./package.json /src
    RUN cd /src && npm install
    COPY . src/
    EXPOSE  3000
    CMD ["node", "/src/express.js"]
    

    The way you originally have it will install npm packages everytime you change something within src. If we separate this step, these packages will only be installed if the package.json file changes.

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