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_CERTIFICATE
和 REGISTRY_HTTP_TLS_KEY
以反映这一点,或者您需要将卷映射更改为 -v /home/myuser/certs:/home/myuser/certs
我正在尝试使用 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_CERTIFICATE
和 REGISTRY_HTTP_TLS_KEY
以反映这一点,或者您需要将卷映射更改为 -v /home/myuser/certs:/home/myuser/certs