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

问题描述 投票:0回答:1

我正在尝试使用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 ...

docker ansible docker-registry
1个回答
0
投票

您正在将/home/myuser/certs安装到容器内部的/certs。您需要更新REGISTRY_HTTP_TLS_CERTIFICATEREGISTRY_HTTP_TLS_KEY以反映此情况,或者需要将音量映射更改为-v /home/myuser/certs:/home/myuser/certs

© www.soinside.com 2019 - 2024. All rights reserved.