模拟" docker build -f"与ansible模块" docker_image"

时间:2016-10-27 12:42:43

标签: docker ansible ansible-playbook docker-image

当我构建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选项中。

1 个答案:

答案 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