我试图" dockerize"我们的发展环境。我们有一个gulp构建系统,可以监视我们的js / sass / jade文件的变化。这一切都设置为在docker之外工作得很好。
我创建了一个docker容器,然后将代码库安装到其中(使用卷)。所有前驱npm安装和bower安装成功完成。我的最后一步运行gulp并且它正常运行并构建但是然后不会对我们的任何js / sass / jade文件进行任何后续更改。
我使用以下命令运行构建系统:
docker run -it -v $(pwd):/code/ client gulp reset
有没有人在他们的开发环境中有类似的设置?你做了什么让你的gulp手表工作并展示建筑物?
编辑:我想我可以在docker之外进行gulp构建/监视,只安装生成的文件,但我宁愿将其全部包含在docker内部,这样主机就不用担心了关于构建/运行我们的应用程序的任何依赖项EDIT2:这是我的dockerfile和docker-compose.yml
#Dockerfile
FROM node:0.12.5
RUN mkdir /code
WORKDIR /code
RUN mkdir client
WORKDIR client
RUN mkdir .tmp
ADD ./client/package.json /code/client/package.json
ADD ./client/bower.json /code/client/bower.json
RUN npm install gulp -g
RUN npm install bower -g
RUN npm install
RUN npm rebuild node-sass
RUN bower --allow-root install
CMD gulp reset
和
client:
build: .
volumes:
- .:/code
答案 0 :(得分:3)
我从来没有能够让任何基于inotify的文件观察者能够使用虚拟框客人添加,并且基于this ticket它不太可能很快就可用。我的首选方法如下:
示例rsync:
docker run --rm --volumes-from sourcecode my/image \
rsync \
--delete \
--recursive \
--safe-links \
--exclude .git --exclude node_modules \
/local/repo/ /container/repo
这可以避免很多问题,并且可以让您详细了解容器环境的内容。