Joseph Finlayson
11/27/2020, 12:51 PMflow.register
I'm seeing the following strange stack:
flow.register(project_name="default")
File "/home/joe/.local/share/virtualenvs/flows/lib/python3.8/site-packages/prefect/core/flow.py", line 1655, in register
registered_flow = client.register(
File "/home/joe/.local/share/virtualenvs/flows/lib/python3.8/site-packages/prefect/client/client.py", line 771, in register
serialized_flow = flow.serialize(build=build) # type: Any
File "/home/joe/.local/share/virtualenvs/flows/lib/python3.8/site-packages/prefect/core/flow.py", line 1462, in serialize
storage = self.storage.build() # type: Optional[Storage]
File "/home/joe/.local/share/virtualenvs/flows/lib/python3.8/site-packages/prefect/environments/storage/docker.py", line 359, in build
self._build_image(push=push)
File "/home/joe/.local/share/virtualenvs/flows/lib/python3.8/site-packages/prefect/environments/storage/docker.py", line 423, in _build_image
self._parse_generator_output(output)
File "/home/joe/.local/share/virtualenvs/flows/lib/python3.8/site-packages/prefect/environments/storage/docker.py", line 658, in _parse_generator_output
output = (
AttributeError: 'NoneType' object has no attribute 'strip'
`
output = (
parsed.get("stream")
or parsed.get("message")
or parsed.get("errorDetail", {}).get("message")
).strip("\n")
if output:
print(output)
This is the culprit, if you need to assert the output you can't blindly strip it{'stream': 'Removing intermediate container e92479882653\n'}
Removing intermediate container e92479882653
{'stream': ' ---> 91c2b194ac0a\n'}
---> 91c2b194ac0a
{'aux': {'ID': 'sha256:91c2b194ac0a59b440144e8ab680aee2152fc2dba0b86c112c1116eca256aed4'}}
This docker edge case should be accounted forfelipe
11/27/2020, 2:46 PMSteven Hamblin
11/27/2020, 3:15 PMRobin
11/27/2020, 6:47 PMJoseph Finlayson
11/27/2020, 8:43 PMZanie
Sagun Garg
12/28/2020, 9:01 AM