有没有一种方法可以完全从命令行构建Docker容器?即,我需要能够设置诸如FROM,RUN和CMD之类的东西.
在这种情况下,我必须使用docker容器来运行所有内容(git,npm等),并且我想动态地构建已完成准备工作的容器(例如已经运行npm install的容器) .
有很多不同的情况,为每个情况创建一个实际的Dockerfile可能会过头.相反,我想只能在脚本中创建命令行命令.
最佳答案
docker build要求Dockerfile是实际文件.您可以通过以下方式使用其他文件名:
原文链接:https://www.f2er.com/docker/532686.htmldocker build -f Dockerfile.temp .
它们允许通过标准输入传递构建上下文(也称为.或当前目录),但是尝试使用以下语法传递Dockerfile将失败:
$docker build -t test-no-df -f - . <<EOF
FROM busyBox:latest
CMD echo just a test
EOF
unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /home/bmitch/data/docker/test/-: no such file or directory
2017-05-05更新:Docker刚刚发布了17.05.0-ce,其中包括PR #31236.现在,上面的命令创建一个图像:
$docker build -t test-no-df -f - . <<EOF
FROM busyBox:latest
CMD echo just a test
EOF
Sending build context to Docker daemon 23.34MB
Step 1/2 : FROM busyBox:latest
---> 00f017a8c2a6
Step 2/2 : CMD echo just a test
---> Running in 45fde3938660
---> d6371335f982
Removing intermediate container 45fde3938660
Successfully built d6371335f982
Successfully tagged test-no-df:latest