使用dockerfile构建映像

时间:2016-12-06 12:25:32

标签: curl docker

有没有人使用以下命令成功构建图像?

curl -v -X POST \
-H "Content-Type:application/tar" \
http://52.212.221.156:2375/build?t=samplerepo&dockerfile="C:\Dockerfile.tar.gz"

即使文件位于指定位置,我也会收到以下错误

{"message":"Cannot locate specified Dockerfile: Dockerfile"}

或者,如果有人使用remote参数完成了该操作,请提供帮助

2 个答案:

答案 0 :(得分:1)

查询参数dockerfile应指向构建上下文中的Dockerfile,即在您随请求发布的tar存档中。

假设档案中的以下结构

    payload.tar.gz
    -- config
       -- Dockerfile
    -- src
    -- temp

Then your query parameter "dockerfile" shall hold config/Dockerfile.

确保您发送tar有效负载以及请求。

以下命令通过Docker Remote API在本地环境中创建图像

curl -v POST -H "Content-Type: application/tar" --data-binary @Dockerfile.tar.gz --unix-socket /var/run/docker.sock http:/build?t=sample

答案 1 :(得分:1)

首先,请参阅Docker API文档并浏览所有查询参数https://docs.docker.com/engine/api/v1.25/#operation/ImageBuild

使用dockerfile构建图像有三种方法

  1. 使用远程网址,其中包含tar格式的dockerfile

    curl -X POST "http://localhost:5000/build?remote=https://raw.githubusercontent.com/abha10/FirstGitProj/master/Dockerfile.tar"

  2. 使用远程URL和dockerfile上下文路径

    curl -X POST "http://localhost:5000/build?dockerfile=Tomcat/config/Dockerfile&remote=https://raw.githubusercontent.com/abha10/FirstGitProj/master/Tomcat.tar"

  3. 以下内容未在其官方文档中提供,但如果您的本地存在dockerfile,则可以正常使用。

    curl -X POST -H "Content-Type:application/tar" --data-binary '@Dockerfile.tar.gz' "http://localhost:5000/build?tag=tomcat"