Неверный файл Docker-Compose

#node.js #docker #docker-compose

#node.js #docker #docker-compose

Вопрос:

Я впервые использую Docker и Docker-compose и получаю эту ошибку ERROR: The Compose file is invalid because: Service volumes have neither an image nor a build context specified. At least one must be provided. , но в моем файле docker-compose указан контекст сборки. Я пытался перемещать build context его по разным местам, но по-прежнему безрезультатно. Вот мой файл docker-compose

 version: '3.4'
services:
  express:
    container_name: express
    image: node:12-alpine
    volumes:
      - type: bind
        source: ./
        target: /app
      - type: volume
        source: nodemodules
        target: /app/node_modules
        volume:
          nocopy: true
    build: .
    working_dir: /app
    command: npm run dev
    ports:
      - '4000:4000'
    environment:
      - NODE_ENV=development
      - PORT=4000
  volumes:
  nodemodules:
    links:
      - mongo
  mongo:
    container_name: mongo
    image: mongo
    volumes:
      - ./data:/data/db
    ports:
      - '27017:27017'
      - '27018:27018'
      - '27019:27019'
  

Что именно я могу делать неправильно? Спасибо.

Комментарии:

1. Строки, которые говорят volumes: и nodemodules: имеют отступ на том же уровне, что и другие службы, но являются пустыми. Вероятно, вы хотите удалить эти строки.

2. @King Etiosasere вы пробовали предложение лабиринта Дэвида?

Ответ №1:

Как писал @DavidMaze:

Строки вызываются volumes: и nodemodules: имеют неправильные отступы. Они находятся на том же уровне, что и другие службы, но пусты. Вероятно, вы хотите удалить эти строки.

Взгляните: docker-compose-file.

Ответ №2:

Я смог исправить это после нескольких дней поиска в Google. По-видимому, все, что мне нужно было сделать, это поместить

 volumes:
  nodemodules:
  

точно так же, как в последних строках файла, и удалите их из services сопоставления. Итак, в конце дня мой файл стал таким.

 version: '3.4'
services:
  express:
    container_name: express
    image: node:12-alpine
    volumes:
      - type: bind
        source: ./
        target: /app
      - type: volume
        source: nodemodules
        target: /app/node_modules
        volume:
          nocopy: true
    build: .
    working_dir: /app
    command: npm run dev
    ports:
      - '4000:4000'
    environment:
      - NODE_ENV=development
      - PORT=4000
    links:
      - mongo
  mongo:
    container_name: mongo
    image: mongo
    volumes:
      - ./data:/data/db
    ports:
      - '27017:27017'
      - '27018:27018'
      - '27019:27019'
volumes:
 nodemodules: