首页 > 解决方案 > Ansible Docker exec 失败,路径中找不到 docker?

问题描述

使用 docker with ansible,模拟一个 docker exec 进程失败,出现尴尬错误

---
- hosts: centos
  become: true
  tasks:
    - name: create jenkins container
      docker_container:
        name: my_jenkins
        image: jenkins

    - name: add container to inventory
      add_host:
        name: my_jenkins
        ansible_connection: docker
        ansible_user: jenkins
      changed_when: false

    - name: create directory for ssh keys
      delegate_to: my_jenkins
      file:
        path: "/var/jenkins_home/.ssh/jupiter"
        state: directory

错误

TASK [create directory for ssh keys] ***********************************************************************************
fatal: [apollo]: FAILED! => {"msg": "docker command not found in PATH"}

标签: dockeransible

解决方案


“在 PATH 中找不到 docker 命令”表示 Ansible 尝试执行 docker 命令,但找不到 docker 可执行文件。echo $PATH 查看当前目录。搜索可执行文件的路径。

鉴于 Ansible 能够完成第 1 步和第 2 步,我的假设是 docker 守护进程确实安装成功。所以

  1. 将 Docker 守护程序的路径添加到系统 $PATH 安装。

  2. 将 Docker 放入已包含在 $PATH 中的路径。

希望这会有所帮助。


推荐阅读