Ansible docker_container "Нет хоста в URL запроса", docker pull работает правильно
Я пытаюсь подготовить свою инфраструктуру в AWS с помощью Ansible playbooks. У меня есть экземпляр, и я могу предоставить 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_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
без проблем.
Поиск в Google привел меня не очень далеко, так как я не могу найти других людей с такой же ошибкой. Мне интересно, что изменилось, и как я могу это исправить! Спасибо!
РЕДАКТИРОВАТЬ: Версии:
- ansible - 2.2.0.0
- докер - 1.12.3 6b644ec
- docker-py - 1.10.6
1 ответ
У меня такая же проблема. Понижение образа pip docker-compose на этом хост-компьютере с 1.9.0 до 1.8.1 решило проблему.
- name: Install docker-compose
pip: name=docker-compose version=1.8.1
По этой теме: https://github.com/ansible/ansible-modules-core/issues/5775, настоящий виновник - это запросы. Это исправляет это:
- name: fix requests
pip: name=requests version=2.12.1 state=forcereinstall