Docker远程API使用Node和Dockerode构建

时间:2016-04-13 00:34:00

标签: node.js docker

我正在尝试使用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 . 

它构建完美,然后我可以在本地运行和访问我的容器。

1 个答案:

答案 0 :(得分:0)

人为错误。

/ my-project的内容也需要在tar中。那样的时候 COPY . /my-project被执行,它将.tar中的内容复制到目录中。