Я проверил текущую ситуацию следующим образом:
docker-compose run web bash
В bash я проверил структуру папок с ls
, и они приходили из папки root , Таким образом, даже если вы скопируете свою папку функций в docker - образы томов переопределяют папку docker -image.
Я пытался изменить значение web -> volume на - .functions:/usr/src/app
в docker -compose .yml, но это не сработало.
Итак, в конце концов я переместил файлы Dockerfile
и docker-compose.yml
в папку functions
. И изменил сценарии как
Dockerfile
FROM node:latest
WORKDIR /usr/src/app
COPY . .
RUN npm install
EXPOSE 8080
RUN npm install -g nodemon
CMD nodemon "index.js"
docker -compose.yml
version: "3"
services:
web:
build: .
ports:
- "8080:8080"
links:
- mongo
volumes:
- .:/usr/src/app
mongo:
image: mongo
ports:
- "27018:27017"
В Мой терминал с этой командой:
cd functions && docker-compose -f ./docker-compose.yml up --build --force-recreate
Он работает нормально, но я бы порекомендовал вам не перемещать ваше приложение в другую папку и иметь под npm проект. В будущем у вас будут другие проблемы из-за этого, например, при запуске ваших тестов. Вам нужно найти способ сохранить их в папке root.