I have the following docker-compose.yml
:
version: '3'
services:
web:
build:
context: .
dockerfile: ./.docker/node.dockerfile
volumes:
- D:\Proj\Web:/app
ports:
- '3000:3000'
depends_on:
- 'db'
networks:
- holder-network
restart: on-failure
tty: true
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
networks:
- holder-network
restart: always
environment:
MYSQL_ROOT_PASSWORD: P@ssw0rd
MYSQL_DATABASE: holder_db
MYSQL_USER: holder_usr
MYSQL_PASSWORD: P@ssw0rd
networks:
holder-network:
driver: bridge
volumes:
db_data:
And the node.dockerfile
:
FROM node:7.10
MAINTAINER Juliano Nunes
RUN mkdir /var/www
RUN npm install nodemon -g
WORKDIR /var/www
ADD . /var/www
RUN npm install
CMD nodemon
I'm changing the files under D:\Proj\Web
from the host, however it doesn't update the files in the container. Why?
I've found the error. My docker-compose.yml
was using /app
as the path and node.dockerfile
was using /var/www
.
Here's the updated (working) version:
version: '3'
services:
web:
build:
context: .
dockerfile: ./.docker/node.dockerfile
volumes:
- D:\Proj\Web:/var/www
ports:
- '3000:3000'
depends_on:
- 'db'
networks:
- holder-network
restart: on-failure
tty: true
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
networks:
- holder-network
restart: always
environment:
MYSQL_ROOT_PASSWORD: P@ssw0rd
MYSQL_DATABASE: holder_db
MYSQL_USER: holder_usr
MYSQL_PASSWORD: P@ssw0rd
networks:
holder-network:
driver: bridge
volumes:
db_data: