【问题标题】:Docker Remote API Build with Node and Dockerode使用 Node 和 Dockerode 构建 Docker 远程 API
【发布时间】:2016-08-03 20:17:05
【问题描述】:

我正在尝试使用 Docker Remote API 来发布 /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 . 

它构建得非常好,然后我可以在本地运行和访问我的容器。

【问题讨论】:

  • .tar 文件的路径是什么?您想将此文件(.tar 文件)复制到 /my-project 文件夹,对吗?
  • tar 文件在执行它的目录中是本地的。它确实找到了我使用节点 test.js 执行的 Dockerfile.tar,并且 tar 文件与 test.js 处于同一级别

标签: node.js docker


【解决方案1】:

人为错误。

/my-project 的内容也需要在 tar 中。那样当 执行COPY . /my-project 会将.tar 中的内容复制到目录中。

【讨论】:

    猜你喜欢
    • 2021-11-13
    • 2017-08-16
    • 2015-06-27
    • 2018-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多