Я хочу создать полную среду Node.js для разработки приложений любого типа (сценарий, API-интерфейс, веб-сайт и т. Д.), Также использующих различные службы (например, Mysql, Redis, MongoDB). Я хочу использовать Docker для создания переносимой среды с несколькими ОС.
Я создал Dockerfile
для контейнера, в котором установлен Node.js:
FROM node:8-slim
WORKDIR /app
COPY . /app
RUN yarn install
EXPOSE 80
CMD [ "yarn", "start" ]
И docker-compose.yml
файл, в котором добавляются сервисы, которые мне нужны:
version: "3"
services:
app:
build: ./
volumes:
- "./app:/app"
- "/app/node_modules"
ports:
- "8080:80"
networks:
- webnet
mysql:
...
redis:
...
networks:
webnet:
Я хотел бы спросить вас, каковы наилучшие модели для достижения этих целей:
Распределение всей рабочей директории по контейнеру хоста и докера для редактирования файлов и просмотра изменений с обеих сторон.
Наличие каталога node_modules
, видимого как на хосте, так и на контейнере докера, чтобы его можно было отлаживать также из IDE на хосте.
Поскольку я хочу среду разработки, подходящую для каждого проекта, у меня будет контейнер, в который после его запуска я могу войти, используя команду, подобную docker-compose exec app bash
. Поэтому я пытаюсь найти другой способ сохранить контейнер живым вместо запуска сервера Node.js или использования трюка CMD ['tail', '-f', '/d/null']
Спасибо за совет!