我在AWS中有2个redhat实例。一个实例是Ansible master,另一个是节点,它们都有docker。现在在ansible master我有一个名为first的文件夹,并且Dockerfile就像下面那样只安装了git
$_POST
现在我想创建一个图像或在节点或locallhost中运行一个容器iam using command
FROM ubuntu:14.04
RUN apt-get update && apt-get install -y git
我收到以下错误
ansible all -s -m shell -a "docker build -t first:latest ."
如何继续我的场景,在执行ansible ad-hoc命令时在节点中有一个docker镜像或docker容器?
答案 0 :(得分:0)
这是因为每台计算机上都没有localhost上的文件。您需要先将它们复制到某个位置。
ansible all -s -m "synchronize" -a "src=./ dest=/tmp/build/"
这会将您当前的文件夹复制到/tmp/build
如果您只想复制Dockerfile,也可以使用文件模块。然后你应该运行构建命令
ansible all -s -m shell -a "docker build -t first:latest /tmp/build"
这回答了你的问题,但这样的方法仍然不正确,因为你应该使用docker_images
模块来运行构建而不是shell
ansible all -s -m docker_image -a "name=first tag=latest path=/tmp/build state=build force=yes"