Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services Ansible docker_集装箱&x27;请求URL';中没有主机;,docker pull工作正常_Amazon Web Services_Docker_Ansible_Provisioning_Dockerpy - Fatal编程技术网

Amazon web services Ansible docker_集装箱&x27;请求URL';中没有主机;,docker pull工作正常

Amazon web services Ansible docker_集装箱&x27;请求URL';中没有主机;,docker pull工作正常,amazon-web-services,docker,ansible,provisioning,dockerpy,Amazon Web Services,Docker,Ansible,Provisioning,Dockerpy,我正试图使用Ansible剧本在AWS上提供我的基础设施。我有这个实例,并且能够提供docker engine、docker py等。我发誓,昨天它工作正常,此后我没有更改代码 我的剧本的相关部分是: - name: Ensure AWS CLI is available pip: name: awscli state: present when: aws_deploy - block: - name: Add .boto file with AWS credenti

我正试图使用Ansible剧本在AWS上提供我的基础设施。我有这个实例,并且能够提供docker engine、docker py等。我发誓,昨天它工作正常,此后我没有更改代码

我的剧本的相关部分是:

- name: Ensure AWS CLI is available
  pip:
    name: awscli
    state: present
  when: aws_deploy
- block:
  - name: Add .boto file with AWS credentials.
    copy:
      content: "{{ boto_file }}"
      dest: ~/.boto
    when: aws_deploy
  - name: Log in to docker registry.
    shell: "$(aws ecr get-login --region us-east-1)"
    when: aws_deploy
  - name: Remove .boto file with AWS credentials.
    file:
      path: ~/.boto
      state: absent
    when: aws_deploy
  - name: Create docker network
    docker_network:
      name: my-net
  - name: Start Container
    docker_container:
      name: example
      image: "{{ docker_registry }}/example"
      pull: true
      restart: true
      network_mode: host
      volumes:
        - /etc/localtime:/etc/localtime:ro
        - /etc/timezone:/etc/timezone
我的
{{docker\u registry}}
设置为
My-acct-id.dkr.ecr.us-east-1.amazonaws.com
,我得到的结果是:

"msg": "Error pulling my-acct-id.dkr.ecr.us-east-1.amazonaws.com/example - code: None message: Get http://: http: no Host in request URL"
然而,正如前面提到的,这在昨晚是正确的。从那以后,我对VPC/子网做了一些更改,但我能够通过ssh连接到实例,并运行
docker-pull my-acct-id.dkr.ecr.us-east-1.amazonaws.com/example
,没有任何问题

谷歌搜索让我没走多远,因为我似乎找不到其他有同样错误的人。我想知道是什么改变了,我怎样才能修复它!谢谢

编辑:版本:

  • ansible-2.2.0.0
  • docker-1.12.3 6b644ec
  • docker py-1.10.6

    • 我也有同样的问题。将主机上的docker compose pip映像从1.9.0降级到1.8.1解决了此问题

      - name: Install docker-compose
        pip: name=docker-compose version=1.8.1
      
      根据这个线程:,真正的罪魁祸首是请求。这就解决了这个问题:

        - name: fix requests
          pip: name=requests version=2.12.1 state=forcereinstall
      

      有完全相同的问题。今天早上它对我有效,我没有改变任何事情。我打开了一个bug:当访问私有和公共Docker注册表时,我也看到了这一点。这确实是一个令人头痛的问题。这对我来说很有效。奇怪的是,看起来1.9.0是在几周前发布的。这对我来说也很有效,尽管我认为我们遗漏了一个大问题,建议关注上面链接的GitHub问题davey_dev。