有一些奇怪的问题让docker在Windows主机上运行,但在Linux主机上却很好。它只是一个简单的节点容器,可以运行gulp(并最终将附加到其他LAMP类似容器)。
我的docker-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
确实存在,如果相关,似乎是dash
的sym链接?看起来与我的linux主机完全相同,这可以正常工作。
任何想法出了什么问题?
在旁注 ,任何时候我从linux主机使用docker它就像一个梦想,但是Windows我总是在与Windows特定问题摔跤时失去时间,npm installs似乎没有正常工作或挂起或花费很长时间,卷不在我的文档中的问题等。在Windows / boot2docker上的docker fubar或者只是我?
答案 0 :(得分:1)
在Windows 10和Docker for Windows beta上运行正常。我要么说过时的Docker设置或者你的机器上有东西被堵塞了。如果您仍在运行boot2docker,请尝试切换到Docker for Windows。
另一方面,无论何时我使用来自linux主机的docker它都像梦一样,但是Windows总是因为Windows特定问题而无法摔跤,npm安装似乎无法正常工作或挂起或需要多长时间,卷问题不是在我的文件等等。在Windows / boot2docker上的docker是fubar还是只是我?
Windows总是给几乎所有东西带来一些痛苦:p,在早期的boot2docker时代,Windows支持非常错误/不完整,但是最新的Docker for Windows版本现在运行起来非常顺利。
答案 1 :(得分:0)
(将此作为答案发布,因为我没有足够的代表发表评论)
出于某种原因,Docker尝试在主机而不是来宾中运行命令。因为它说"容器命令"你实际上可能希望在" run"之前加上它,就像the online reference一样。