Прежде чем отправлять какую-либо конфигурацию, я пытаюсь объяснить, что я хотел бы архивировать, и хотел бы упомянуть, что я новичок в докере.Создание веб-приложения, которое может выполнять задачи npm
Чтобы облегчить общение в разговорах, предположим, что мы говорим о проекте «Докажите меня!». и он находится в «X: \ docker-projects \ docker-me-up».
Цель:
Я хотел бы запустить несколько проект Nginx с различным содержанием, каждый проект представляет собой специальную сборку. Во время разработки [docker-compose up -d] контейнер должен обновляться мгновенно; который отлично работает.
Сложная часть заключается в том, что я хочу передать npm [http://gruntjs.com] с моего хоста непосредственно в контейнер/изображение, поэтому я могу отлаживать и развивать везде, где я есть, просто устанавливая докеры. Поэтому npm должен быть установлен в «службе», и наблюдатель должен быть инициализирован.
Каждый проект инкапсулирован в свою папку на хосте/сборке в докере и не должен знать ничего, кроме самого себя.
Мое решение:
Я пробовал много разных версий, с «volumes_from» и т.д., но я решил показать вам это, потому что это уменьшенная, но до сих пор завершена.
Докер-compose.yml
version: '2'
services:
web:
image: nginx
volumes:
- ./assets:/website/assets:ro
- ./config:/website/config:ro
- ./www:/website/www:ro
links:
- php
php:
image: php:fpm
ports:
- "9000:9000"
volumes:
- ./assets:/website/assets:ro
- ./config:/website/config:ro
- ./www:/website/www:ro
app:
build: .
volumes:
- ./assets:/website/assets
- ./config:/website/config:ro
- ./www:/website/www
Dockerfile
FROM debian:jessie-slim
RUN apt-get update && apt-get install -y \
npm
RUN gem update --system
RUN npm install -g grunt-cli grunt-contrib-watch grunt-babel babel-preset-es2015
RUN mkdir -p /website/{assets,assets/es6,config,www,www/js,www/css}
VOLUME /website
WORKDIR /website
Проблема:
Как вы можете видеть, сервис «данные» содержит НПМ и должны быть в состоянии выполнить команду npm. Но, если я запустил «docker-compose up -d», все будет работать. Я могу редактировать содержимое страницы, работать с ней и т. Д. Но контейнер данных не работает и из-за этого не может выполнять какую-либо команду npm. Если у меня не будет огромной логической ошибки; что вполне возможно ;-)
Окружающая среда:
- для Windows 10 Pro [up2date]
- Общий привод для докер используется
- Docker версия 1.12.3, построить 6b644ec
- докер-машина версия 0.8.2, сборка e18a919
- версия для док-станции 1.8.1, построить 004ddae