使用 Molecule 登录 Docker 容器时出错

Error when login to Docker container using Molecule

我有这个分子配置:

---
dependency:
  name: galaxy
driver:
  name: docker
platforms:
  - name: instance1
    image: docker.io/pycontribs/centos:8
provisioner:
  name: ansible
verifier:
  name: ansible

我 运行 molecule converge 它工作正常。现在,我需要登录 instance1 容器。当我 运行 molecule login --host instance1 时,我得到这个错误:

FileNotFoundError: [Errno 2] No such file or directory: '/usr/bin/env docker exec -e COLUMNS=108 -e LINES=41 -e TERM=bash -e TERM=xterm -ti instance1 bash'

发生了什么事?

版本

docker 包:5.0.3

分子:3.6.1

分子-docker: 1.1.0

注意

如果我 运行 出现错误的命令:

/usr/bin/env docker exec -e COLUMNS=108 -e LINES=41 -e TERM=bash -e TERM=xterm -ti instance1 bash

在终端中,它工作正常。

这是分子未正确扩展 shell 参数的已知问题,已在此拉取请求中修复:https://github.com/ansible-community/molecule/pull/3468

我已将此拉取请求修补到我的本地分子实例中,并可以确认它修复了此问题。