我正在尝试使用Ansible自动化Docker注册表创建步骤。这是我的ansible剧本:
---
- 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 =“打开/home/myuser/certs/domain.crt:没有这样的文件或目录”
但是文件在确切的位置。
如果我手动运行docker run
步骤,它将创建Docker注册表而不会出现错误。为什么会出现此错误?
这里testansible
配置为使用本地主机。
环境:Ubuntu 16.04
Ansible:ansible 2.8.5
我正在尝试使用Ansible自动化Docker注册表创建步骤。这是我的ansible-playbook:---主机:可测试的任务:-名称:获取docker Registry成为:true ...
您正在将/home/myuser/certs
安装到容器内部的/certs
。您需要更新REGISTRY_HTTP_TLS_CERTIFICATE
和REGISTRY_HTTP_TLS_KEY
以反映此情况,或者需要将音量映射更改为-v /home/myuser/certs:/home/myuser/certs