docker 注册表在 ansible 运行时找不到文件

docker registry cant find files when ansible runs it

我正在尝试使用 ansible 自动执行 docker 注册表创建步骤。 这是我的 ansible-playbook :

---
- hosts: testansible
  tasks:

    - name: Getting docker registry
      become: true
      become_method: sudo
      become_user: root
      shell: docker run -d -p 443:443 --restart=always --name registry -v /home/myuser/certs:/certs -e REGISTRY_HTTP_ADDR=0.0.0.0:443 -e REGISTRY_HTTP_TLS_CERTIFICATE=/home/myuser/certs/domain.crt -e REGISTRY_HTTP_TLS_KEY=/home/myuser/certs/domain.key registry:2

当我运行这个的时候,它没有报错。

PLAY RECAP 
127.0.0.1                  : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

但是在docker logs

level=fatal msg="open /home/myuser/certs/domain.crt: no such file or directory"

但是文件在确切的位置。

如果我 运行 docker run 手动步骤,它会创建 docker 注册表而不会出错。 为什么会出现此错误?

这里testansible配置为使用localhost。

环境:Ubuntu16.04

Ansible : 2.8.5

您正在容器内安装 /home/myuser/certs/certs。您需要更新 REGISTRY_HTTP_TLS_CERTIFICATEREGISTRY_HTTP_TLS_KEY 以反映这一点,或者您需要将卷映射更改为 -v /home/myuser/certs:/home/myuser/certs