当我构建docker图像时,我想添加指令" COPY"在Dockerfile中,目录在当前构建目录之外(放置Dockerfile的地方) - 我使用类似这样的东西:
docker build -f centos6-fresh / Dockerfile -t test / c6-fresh。
现在我想通过ansible配置容器和构建docker镜像。 当然我可以使用shell,命令或原始模块来完成它,但我看到了Docker的特殊模块。
所以我使用了模块" docker_image"
- name: Build test image
docker_image:
path: /docker/build_env/test
name: test_build
tag: v0
我当然得到了错误。
有没有选项可以设置必须从哪个目录构建流程?
UPD 我需要这些操作的案例:
我的管理节点(我的笔记本电脑)带有ansible和带有容器的Docker主机。 Ansible目录是使用git配置Docker服务器。
通常我在Docker主机上的目录build_env中构建一个映像:
[root@docker build_env]# ls -1
ansible
centos6-fresh
centos7-fresh
debian8-fresh
templates
test
所以跑完" git pull"在ansible目录中,我运行类似
的东西docker build -f centos6-fresh / Dockerfile -t test / c6-fresh。
Dockerfile包含:
COPY ansible / etc / ansible
正如我们现在所说,docker阻止使用" COPY ../ansible"在COPY或ADD选项中。
答案 0 :(得分:1)
根据docker_image documentation,有dockerfile
选项与-f
命令行选项完全相似。所以你只需要:
- name: Build test image
docker_image:
path: /docker/build_env/
name: test_build
tag: v0
dockerfile: centos6-fresh/Dockerfile