Используя docker-compose
, у меня есть Dockerfile, который создает среду для приложения Sails JS. В моем Dockerfile я создаю новый проект Sails scaffold, используя sails new .
(папка, сопоставленная с моей локальной файловой системой через docker-compose).
Когда я запускаю docker-compose build
, все кажется успешным. Я выполняю docker-compose up -d
на своей локальной машине. Затем я перехожу к папке, которая на хост-компьютере сопоставляется с моей локальной папкой, в которой на хост-компьютере (vm) я создал новый проект Sails. Я ожидаю увидеть все файлы, созданные на компьютере HOST во время docker-compose build
, в моей локальной папке. Папка ПУСТА? Как дела?
Мой основной файл docker-compose:
node:
restart: "always"
build: ./cnt/node
ports:
- "8080:8080"
volumes:
- ./src:/var/www/html
# DEBUG: conveniently used to keep a container running
command: /bin/bash -c 'tail -f /dev/null'
ПРИМЕЧАНИЕ. ./src — это моя локальная папка, в которой будет находиться мой исходный код. Это сопоставлено с /var/www/html (webroot) на машине HOST.
Вот последние две строки из Dockerfile, найденного в ./cnt/node и используемого для создания шаблона Sails:
WORKDIR /var/www/html
RUN sails new .
RUN touch test.txt
Все работает успешно, когда я выполняю (без ошибок):
docker-compose build
docker-compose up -d
Закончив, я cd src
проверил исходный каталог, в котором я ожидал увидеть шаблон моего приложения Sails, но он ПУСТОЙ. Какого черта?! Ошибок не было? Что мне не хватает?
Это как-то связано с файлом docker-compose и с тем, что образ, который я создаю, создается с помощью build: ./cnt/node
, а ПОЗЖЕ я монтирую тома в файле compose? Нужно ли монтировать VOLUMES сначала перед созданием каркаса Sails?
Спасибо!