user3821102
user3821102

Reputation: 139

Problem with img reference in docker-compose

Hello i tried to build docker-compose in my project with these structure file:

app/
   -front-end/src/Components
   -back-end/images

but when i run build i have these error with img relative url:

frontend_1  | Module not found: Can't resolve '../../../../../back-end/images'

And these is my docker-compose file:

  version: '2'
  services:
   backend:
    network_mode: host
    build: ./back-end/
    ports:
      - "6200:6200"
    volumes:
      - ./back-end:/usr/src/app
  frontend:
    build: ./front-end/
    ports:
      - "3000:3000"
    volumes:
      - ./front-end:/usr/src/app
    depends_on:
      - backend

My frontend Dockerfile:

FROM node:10.15.3
RUN mkdir -p /usr/src/app
WORKDIR /TuKanasta

EXPOSE 3000
CMD ["npm", "start"]

the backend Dockerfile:

FROM node:10.15.3
RUN mkdir -p /usr/src/app
WORKDIR /TuKanasta

RUN npm install -g nodemon

EXPOSE 4000
CMD [ "npm", "start" ]

Note: My project run 100 % without docker.

Upvotes: 1

Views: 116

Answers (1)

VonC
VonC

Reputation: 1324737

volumes:
      - ./back-end:/usr/src/app
...
volumes:
      - ./front-end:/usr/src/app

If set in the same image, the second bind mount volume would overwrite the first /usr/src/app content, as illustrated in gladiusio/gladius-archive-node issue 4.

If set in two different images, /usr/src/app in frontend1 would not be able to see back-end, copied in /usr/src/app separate volume of backend service.

Declaring the volume as external might help, as illustrated in this thread.
Or copying into an existing volume (shown here)

Upvotes: 1

Related Questions