【发布时间】:2018-01-01 14:39:38
【问题描述】:
我们可以使用包含 dockerfile 的 tarball 或 zip 存档来构建 docker 映像吗?我需要使用 docker api 从档案中构建图像。
有没有参考或资源,我已经搜索了 3o 分钟但找不到任何东西。
请帮帮我! 提前致谢!
【问题讨论】:
标签: docker docker-image docker-build docker-api
我们可以使用包含 dockerfile 的 tarball 或 zip 存档来构建 docker 映像吗?我需要使用 docker api 从档案中构建图像。
有没有参考或资源,我已经搜索了 3o 分钟但找不到任何东西。
请帮帮我! 提前致谢!
【问题讨论】:
标签: docker docker-image docker-build docker-api
是的,可以从包含 Dockerfile 的 tarball 构建 dockerimage。
假设我们有一个名为 myDockerfile 的 dockerfile,其中包含以下脚本
FROM ubuntu
COPY ./venv /
CMD ["/bin/bash"]
myDockerFile 存在于文件夹 dockerfiles 中
FOLDER --> dockerfiles
FILE -----------> myDockerFile
文件夹dockerfiles 的压缩包名为dockerfiles.tar
构建镜像的 docker 命令将是:-
cat dockerfiles.tar | docker build - -f dockerfiles/myDockerFile -t mydockerimage
注意:-
-f denotes the docker file in context to the tarball , if the dockerfile is called 'Dockerfile'
then there is no need to mention the name of the filename verbose
【讨论】:
您可以使用docker load命令获取更多信息visit
【讨论】:
您的意思是,您的 tar.gz 包含一个 Dockerfile 并且您想构建它的映像?就像您从 github 版本下载档案一样,例如:https://github.com/nginxinc/docker-nginx/releases?
是的,你可以:
#!/bin/bash
wget "https://github.com/nginxinc/docker-nginx/archive/1.13.2.tar.gz"
tar xvf 1.13.2.tar.gz --strip-components 3 docker-nginx-1.13.2/stable/alpine/Dockerfile && docker build . -t mynginx
【讨论】:
invalid tar header 错误。