У меня есть проблемы, когда gulp не создает никаких файлов. Там написано, что файл завершен, но файл не создается.
Если я войду в свой экземпляр докера, используя:
docker exec -t -i myservice-service / bin / bash
и если я запускаю команду gulp, то она создает ее правильно
Затем создаются все файлы, определенные в gulpfile.js. Другими словами, public / dist / заполняется main.js и другими css-файлами.
Это мой Dockerfile.
FROM node:9
RUN mkdir -p /usr/src/app
RUN mkdir -p /usr/src/logs
WORKDIR /usr/src/app
# GULP Installation
RUN npm install -g gulp
RUN npm install gulp
COPY package*.json /usr/src/app/
COPY .npmrc /usr/src/app/
RUN cd /usr/src/app/ && npm install && npm install -g nodemon
COPY . /usr/src/app
RUN chown -R node:node /usr/src/app && chown -R node:node /usr/src/logs
USER node
EXPOSE 3000
RUN gulp
CMD ["npm", "run-script", "start" ]
А это мой файл композитора (разработка):
version: "3"
services:
myservice-service:
build: .
image: myservice-service
container_name: myservice-service
volumes:
- .:/usr/src/app
- /usr/src/app/node_modules
environment:
- NODE_ENV=dev
ports:
- 3000:3000
command: nodemon --delay 2 ./bin/www
Я запускаю его как:
docker-compose -f docker-compose.development.yml up --build
Когда я запускаю его таким образом, он не создает никаких файлов. Я получаю тот же вывод на экране, когда запускаю команду вручную.
Я часами пытался заставить его работать, я пытался с настройкой разрешений, а что нет, но он просто не работает.
Я ожидал, что public / dist / заполнится файлами.
Любая помощь приветствуется.
UPDATE. Это работает, но у меня есть сомнения:
Мне удается заставить его работать, используя команду внутри самого composerfile.
Итак, в моем случае:
команда: bash -c "gulp && nodemon --delay 2 ./bin/www"
По моему мнению, gulp должен выполняться внутри самого Dockerfile, а не в файлах композитора. Но опять же, это выходит за рамки моих знаний.