Обходящий контейнер Python Docker SDK выходит из ненулевого кода состояния в отдельном режиме - PullRequest
0 голосов
/ 31 октября 2018

У меня есть это изображение докера, которое wgetting страницы для меня, иногда, однако, контейнер будет выходить с ненулевым кодом состояния. Если контейнер запущен в отдельном режиме, я не могу уловить проблемы. Я пытаюсь сделать запрос, пока он не проходит без ошибки (в отключенном режиме). Будет ли что-то подобное обойти проблему:

import docker
import random
import time
from collections import namedtuple

URL = namedtuple('URL', 'val')

URLs = (
    URL('https://www.google.com'),
    URL('https://www.yahoo.com')
)

client = docker.from_env()
local_dir = '/home/ubuntu/git/docker-scraper/data-test'
volumes = {local_dir: {'bind': '/download/', 'mode': 'rw'}}


def make_request(url):
    environment = {'URL': url}
    try:
        print("Working on URL: {}".format(url))
        client.containers.run('wgettor:latest', detach=True, auto_remove=True, volumes=volumes, environment=environment)
        time.sleep(random.random())
    except docker.errors.ContainerError:
        # try again, until it works
        make_request(url)


if __name__ == '__main__':
    for url in URLs:
        make_request(url.val)

Что я пытаюсь понять, так это то, что, хотя клиент работает в автономном режиме, мы получим ошибку, если она произойдет, в этом методе?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...