docker - 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"}
解决方案
“在 PATH 中找不到 docker 命令”表示 Ansible 尝试执行 docker 命令,但找不到 docker 可执行文件。echo $PATH 查看当前目录。搜索可执行文件的路径。
鉴于 Ansible 能够完成第 1 步和第 2 步,我的假设是 docker 守护进程确实安装成功。所以
将 Docker 守护程序的路径添加到系统 $PATH 安装。
将 Docker 放入已包含在 $PATH 中的路径。
希望这会有所帮助。
推荐阅读
- java - mxGraph 中的 java 对象
- r - 如何在R中为间隔创建多列假人
- amazon-web-services - 有什么方法可以限制 IAM 用户/假定角色在 AWS cognito 中启用未经身份验证的用户身份?
- python - 实验室:计算折扣
- javascript - 如何在猫鼬的路由器中等待函数完成其所有内部表达式?
- anylogic - 道路交通图书馆的奇怪行为
- kubernetes - Filebeat:再次删除字段 kubernetes
- python - 使用 unittest 框架回滚 SQLAlchemy
- mysql - 如何创建一个忽略对第三个表具有特定引用的行的选择查询?
- r - 如何更改 $ 运算符在环境中的行为?