'Docker "Invalid mount path app/symfony" must be absolute

Im trying to setup Webpack to run with docker. I'm looking to put it in its own container, build the files and then nginx will serve that produced code on its container.

My docker-compose.yml file looks like:

nginx: 
    build: ./nginx/
    ports:
     - 80:80
    links:
     - php
    volumes_from:
      - app
php:
    build: ./php/
    expose:
        - 9000
    links:
        - mysql
    volumes_from:
        - app

app:
    image: php:7.0-fpm
    volumes:
      - ./app/symfony:/var/www/html
    command: "true"

web:
    build: ./webpack
    volumes_from:
        - app
mysql:
    image: mysql:latest
    volumes_from:
        - data
    environment:
        MYSQL_ROOT_PASSWORD: secret
        MYSQL_DATABASE: project
        MYSQL_USER: project
        MYSQL_PASSWORD: project

data:
    image: mysql:latest
    volumes:
        - /var/lib/mysql
    command: "true"

My code is stored in the app/symfony directory. The Dockerfile for the webpack container is currently:

FROM node:wheezy

WORKDIR /app

RUN apt-get update
RUN apt-get install curl -y
RUN curl -sL https://deb.nodesource.com/setup_6.x | bash - && apt-get install nodejs -y
RUN npm install webpack -g
RUN npm install
CMD webpack --watch --watch-polling

I am getting the error:

ERROR: for web  Cannot create container for service web: invalid bind mount spec "a60f89607640b36a468b471378a6b7079dfa5890db994a1228e7809b93b8b709:app/symfony:rw": invalid volume specification: 'a60f89607640b36a468b471378a6b7079dfa5890db994a1228e7809b93b8b709:app/symfony:rw': invalid mount config for type "volume": invalid mount path: 'app/symfony' mount path must be absolute
ERROR: Encountered errors while bringing up the project.

I want webpack to take the code in app/symfony, and build any assets, and then the nginx container will serve those.



Solution 1:[1]

I had a similar issue. my docker-compose.yml looked like this

version: '3.1'
services:
  nginx:
    build:
      context: ./server
    ports:
      - "8080:80"
    volumes:
      - ./fw:opt/www/app/

and got the error "invalid mount path: 'opt/www/app' mount path must be absolute "

I resolved it by changing the mount path like this by adding a slash in front of the path.

 volumes:
          - ./fw: /opt/www/app/

Solution 2:[2]

SOLUTION: If you have this docker-compose.yaml in your root of project. Then make sure you have a '/' before app.

As per Docker Documentation:

docker run -dp 3000:3000 \
-w /app -v "$(pwd):/app" \
node:12-alpine \
sh -c "yarn install && yarn run dev"

This works perfectly.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Priyanka Narasimhan
Solution 2 Akshay Jain