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?
Thanks!
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.