#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: