【发布时间】:2018-07-02 12:09:44
【问题描述】:
我遇到了 gulp 没有生成任何文件的问题。它说完成,但没有创建文件。 如果我使用以下方式登录我的 docker 实例:
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/ 填充文件。
感谢任何帮助。
更新。它有效,但我有疑问:
我设法通过在 composerfile 本身中使用命令使其工作。 所以就我而言:
命令:bash -c "gulp && nodemon --delay 2 ./bin/www"
在我看来,gulp 应该在 Dockerfile 本身内完成,而不是在 composer 文件上完成。但话说回来,这超出了我的知识范围。
【问题讨论】:
-
npm start 命令中有什么内容?
-
如下:"start": "node ./bin/www",
-
你的 npm 安装中是否包含 gulp? - 例如签入 package.json
-
是的。它作为常规 npm install 包含在我的 package.json 中
标签: node.js docker docker-compose