有一些奇怪的问题让docker在Windows主机上运行,但在Linux主机上运行良好。它只是一个简单的节点容器,可以运行吞咽(并最终将附加到其他类似容器的LAMP)。在Windows上的docker-compose - 没有找到或不存在容器命令'sh'
我的搬运工,compose.yml
version: '2'
services:
node:
build: ./node
container_name: cont_node
ports:
- "35733:35733"
volumes:
- ~/docker/project/www:/var/www/html/
command: "sh -c 'npm install && bower install && gulp'"
我Dockerfile
FROM node:4-onbuild
RUN npm config set registry http://registry.npmjs.org/
# Define working directory.
WORKDIR /var/www/html/
COPY ./package.json /var/www/html/
RUN npm install -g gulp-cli
CMD ["bash"]
所以当我运行
docker-compose up node
返回
Container command 'sh' not found or does not exist.
因为我明白command
命令运行在容器(不是主机)上,这应该没问题?我也尝试过/bin/sh
也有同样的问题。 /bin/sh
确实存在,似乎是一个SYS链接dash
如果这是相关的?看起来与我的Linux主机完全一样,这工作正常。
任何想法出了什么问题?
在一个侧面说明,只要我使用泊坞窗从Linux主机它就像一个梦想,但窗户,我总是失去与Windows的具体问题摔跤小时,故宫安装似乎没有正常工作,或挂或采取年龄,与卷不在我的文件等问题等。是docker在windows/boot2docker fubar'ed或只是我?
@PanagiotisKanavos没有'命令'在撰写上运行的容器上?不在主机上? https://docs.docker.com/compose/compose-file/#command – Horse
对于它的价值,我在Linux上进行了转换,并且没有任何困难让/ bin/sh在那里工作。由于我没有有效的package.json,我的测试停止了。 – BMitch
@BMitch谢谢你的尝试!我也有它在Linux上工作得很好,它很烦人,为什么Windows不会玩好:(如果它抱怨theres没有package.json它比我更进一步 – Horse