【发布时间】: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 处于同一级别