WebDev2030
@WebDev2030
Битриксоид до мозга и костей

Почему docker compose не монтирует volume к контейнеру?

Пытаюсь запустить node js в docker. Но при docker compose build получаю ошибку что нет package.json, хотя в папке которую подключаю как volume есть этот файл. Почему папка не монтируется?
version: "3"

services:
  node:
    build:
      context: ./node
      dockerfile: Dockerfile
    container_name: node
    ports:
      - "3000:3000"
    volumes:
      - ../ht:/data/ht
    networks:
      - app

networks:
  app:
    driver: bridge

FROM node:16-alpine

WORKDIR "/data/ht"

RUN npm install
RUN npm run build

CMD ["npm", "run", "start"]

EXPOSE 3000
  • Вопрос задан
  • 162 просмотра
Решения вопроса 1
Ну потому что вы чепуху делаете: образ собирается до того, как выполнятся какие-либо инструкции из compose. Вам надо копировать все необходимые файлы на стадии сборки в Dockerfile используя инструкцию COPY. Но учтите, что нужно копировать только то что требуется в образе - а именно неизменяемые файлы (например код программы или скомпилированные бинарники), а volume использовать для подключения директории с изменямыми данными.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы