Docker API构建Tar文件路径

时间:2018-07-17 08:28:08

标签: docker docker-api

我正在尝试通过API构建Docker映像。我的上下文位于包含Docker文件以及更多文件和文件夹的TAR文件中。

Dockerfile有几个“ COPY”命令,用于应放置在容器中的文件和文件夹。但这是行不通的,我不知道引用TAR中的这些文件是否正确,以便以后可以复制它们。

TAR的结构大致如下:

  • context.tar
    • Dockerfile
    • /代码
      • (许多py文件)
    • entrypoint.sh
    • nginx.conf
    • requeriments.txt
    • ...
    • ...

然后在Dockerfile中有如下几行:

COPY nginx.conf /etc/nginx/conf.d /

复制./Code / api

这些副本正确吗? api将TAR解释为根路径吗?问题在于它不会给出任何错误,也不会在日志中显示任何内容,只是最终图像留在了结构的中间,我认为它必须将文件从tar复制到容器中。

编辑1:

事实是,它仍然不能很好地运行,但是我注意到通过运行TWICE运行该构建作品,可以注意到这一点。第一次是全心全意,第二次成功地正确完成了该过程。恐怕是某种错误。

我要做的另一件事是用ADDS替换COPY,尽管我认为这基本上是同一回事。

TAR文件:

TAR File content

通过api构建请求:

[16:09:05.650] [ApiProxy] [Info] time =“ 2018-07-17T16:09:05 + 02:00” msg =“ proxy << POST / build?t = test%3Alatest&nocache = 1&dockerfile = Dockerfile \ n“

1 个答案:

答案 0 :(得分:1)

您不能复制一个存档目录中的文件。

第一个解决方案: 在主机上解压缩内容,然后执行相同的命令。

二维解决方案: 复制到容器,例如COPY / ADD context.tar / tmp 并运行tar -xvf /tmp/context.tar  在您的容器上。 祝你有美好的一天。