当我构建 docker 映像并且我想在 Dockerfile 中添加指令“COPY”时,其目录位于当前构建目录之外(放置 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
所以在 ansible 目录中运行“git pull”之后,我运行类似
docker build -f centos6-fresh/Dockerfile -t test/c6-fresh 。
Dockerfile 包括:
复制 ansible /etc/ansible
就像我们现在一样,docker 阻止在 COPY 或 ADD 选项中使用“COPY ../ansible”之类的东西。