gpt4 book ai didi

通过 ansible master 在节点中创建 docker 容器

转载 作者:行者123 更新时间:2023-12-02 20:11:47 26 4
gpt4 key购买 nike

我在 AWS 中有 2 个 redhat 实例。一个实例用于 Ansible master,另一个是节点,其中都有 docker。现在在 ansible master 我有一个名为 first 的文件夹,并且在该 Dockerfile 中存在如下所示,其中仅安装了 git

FROM ubuntu:14.04    
RUN apt-get update && apt-get install -y git

现在我想在 iam 使用命令的节点或本地主机中创建图像或运行容器
ansible all -s -m shell -a "docker build -t first:latest ."

我收到以下错误
localhost | FAILED | rc=1 >>
unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /home/test/Dockerfile: no such file or directory

在执行 ansible ad-hoc 命令时,如何继续我的场景以在节点中拥有 docker 镜像或 docker 容器?

最佳答案

这是因为您在 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"

关于通过 ansible master 在节点中创建 docker 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46284467/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com