Home > Blockchain >  Docker volume mapping to current working directory not work
Docker volume mapping to current working directory not work

Time:01-24

Docker version 20.10.21

docker run command with -v option works as expected when the destination path is other than /app. But when the destination path is /app it doesn't work as expected.

command works as expected:

  docker run -d  -v ${pwd}:/app2 react-app

command not works as expected:

docker run -d  -v ${pwd}:/app react-app

as seen in the snapshot there is not port for the second container enter image description here

here is Dockerfile content

FROM node:14.16.0-alpine3.13
RUN addgroup app && adduser -S -G app app
USER app
WORKDIR /app
RUN mkdir data
COPY package*.json .
RUN npm install
COPY . .
ENV API_URL=http://api.myapp.com/
EXPOSE 3000
CMD [ "npm", "start" ]

CodePudding user response:

You are running npm install in /app in the Dockerfile, but then at runtime you are mounting pwd over the files you installed in /app during the build process. Don't install your dependencies in /app during the build if you want to mount to /app at runtime.

CodePudding user response:

Please try using $(pwd) instead of ${pwd}. Also if you are running it under Windows then you probably need to use some shell which implements pwd command correctly. E.g. Git Bash.

docker run -d  -v $(pwd):/app react-app

Also once you start the container please check docker container inspect <container ID>, specifically Mounts section. Or you can filter the output:

 docker container inspect <container ID> -f '{{ .Mounts }}'

Also if you see that container exits immediately, please check its logs with

docker logs <container ID>

CodePudding user response:

I solved it by excluding the node_modules from the mounting as:

docker run -d  -v ${pwd}:/app -v /app/node_modules  react-app
  • Related