Клиент Python SDK Docker не смог создать образ - PullRequest
0 голосов
/ 25 апреля 2019

Я работаю на виртуальной машине Virtualbox и использую ее для создания образа Docker с помощью скрипта Python с помощью клиента Docker SDK.вот код:

try:
    #print(os.environ)
    client = docker.from_env()

    # building the base image
    image=client.images.build(path=os.getcwd(), dockerfile=os.getcwd()+"/Dockerfile", tag="xlrelease/builder", nocache=True, forcerm=True, use_config_proxy=True)

except Exception as er:
    print(er)

И у меня есть следующее исключение:

  'NoneType' object has no attribute 'setdefault'

После расследования я обнаружил, что это когда я добавляю параметр ## use_config_proxy = True ##,появляется ошибка.

Может ли кто-нибудь помочь мне исправить эту проблему?

Отслеживание было:

Traceback (most recent call last):
  File "build.py", line 41, in <module>
    image=client.images.build(path=os.getcwd(), dockerfile=os.getcwd()+"/Dockerfile", tag="xlrelease/builder", nocache=True, forcerm=True, use_config_proxy=True)
  File "/usr/local/python3.7.3/lib/python3.7/site-packages/docker/models/images.py", line 279, in build
    resp = self.client.api.build(**kwargs)
  File "/usr/local/python3.7.3/lib/python3.7/site-packages/docker/api/build.py", line 179, in build
    buildargs.setdefault(k, v)
AttributeError: 'NoneType' object has no attribute 'setdefault'

1 Ответ

0 голосов
/ 25 апреля 2019

Я решил проблему, найдя полную трассировку:

Traceback (most recent call last):
  File "build.py", line 41, in <module>
    image=client.images.build(path=os.getcwd(), dockerfile=os.getcwd()+"/Dockerfile", tag="xlrelease/builder", nocache=True, forcerm=True, use_config_proxy=True)
  File "/usr/local/python3.7.3/lib/python3.7/site-packages/docker/models/images.py", line 279, in build
    resp = self.client.api.build(**kwargs)
  File "/usr/local/python3.7.3/lib/python3.7/site-packages/docker/api/build.py", line 179, in build
    buildargs.setdefault(k, v)
AttributeError: 'NoneType' object has no attribute 'setdefault'

У меня есть новый параметр (buildargs), когда я вызываю клиентскую функцию:

    image=client.images.build(path=os.getcwd(), buildargs={'tags':'test'}, dockerfile=os.getcwd()+"/Dockerfile", tag="xlrelease/builder", nocache=True, forcerm=True, use_config_proxy=True)

Это решило проблему

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