我正在尝试使用Docker Remote API进行POST / build。
我的Dockerfile看起来像。
FROM node:5.8.0
COPY . /my-project
WORKDIR /my-project
RUN npm install
CMD ["node", "server.js"]
我在.tar中有这个确切的文件,因为这是API所需要的。问题是它执行命令 - 除非它到达npm install - 它说找不到package.json。实际上/ my-project目录中唯一的东西是Dockerfile。它似乎无法理解如何复制实际目录。
我正在使用dockerode节点模块。
var Docker = require('dockerode');
var docker = new Docker();
docker.buildImage('Dockerfile.tar', {t: 'myproject'}, function(err, stream) {
if(err) return;
stream.pipe(process.stdout, {end: true});
stream.on('end', function() {
done();
});
});
当我从目录中的终端运行命令时,如此
docker build .
它构建完美,然后我可以在本地运行和访问我的容器。
答案 0 :(得分:0)
人为错误。
/ my-project的内容也需要在tar中。那样的时候
COPY . /my-project
被执行,它将.tar中的内容复制到目录中。