https://prefect.io logo
#prefect-community
Title
# prefect-community
d

David Elliott

09/02/2020, 7:41 PM
Hey all! It’s been a month or so since I last worked with my prefect project and you’ve come a long way since I was last using it, v0.13 looks great! I’ve come across a docker build issue with the later versions though - unsure if it’s something I’m doing or if I’ve found a bug? I’m getting the following error on the healthcheck, right at the end of the docker build:
Copy code
Step 9/9 : RUN python /opt/prefect/healthcheck.py '["/opt/prefect/flows/error-test.prefect"]' '(3, 7)'
 ---> Running in 13eb44f7f5db
Beginning health checks...
System Version check: OK
Traceback (most recent call last):
  File "/opt/prefect/healthcheck.py", line 121, in <module>
    flows = cloudpickle_deserialization_check(flow_file_path)
  File "/opt/prefect/healthcheck.py", line 43, in cloudpickle_deserialization_check
    flows.append(cloudpickle.load(f))
  File "/usr/local/lib/python3.7/site-packages/prefect/core/edge.py", line 149, in __hash__
    self.flattened,
AttributeError: 'Edge' object has no attribute 'flattened'
I’ve simplified my original setup right down to the attached script to try and trace the issue - I’m getting the error on version 0.12.6 onwards - might be related to this change added in v0.12.6? v0.12.5 builds ok. Hoping someone could let me know if it’s something wrong in my code or if they’re able to reproduce? Locally I’m running python 3.7 & prefect 0.13.5 (though this shouldn’t matter as it’s building the docker container with the specified base image) Thanks!
c

Chris White

09/02/2020, 7:42 PM
Hi David and welcome back! This looks to me like the version of Prefect running inside your Docker image is actually older than 0.12.6, so it can’t parse the flow that you created on the newer version. You’ll wnat to make sure that the image itself also has 0.13.5 installed
👀 1
d

David Elliott

09/02/2020, 7:54 PM
Hey @Chris White, thanks! Yes that would definitely make sense. The thing I’m a bit unclear on though is I thought that by specifying the base image, it would build the docker image using that version of prefect. However, in STEP 3/9 of the docker build, it does indeed appear to be pip installing v 0.12.3, though I don’t think I’ve told it to do that..? Any idea where that pip install 0.12.3 might be coming from? (is there a local variable that might be throwing that in?)
c

Chris White

09/02/2020, 8:02 PM
Hm that is usually autogenerated based on your local
prefect.__version__
d

David Elliott

09/02/2020, 8:02 PM
Ahh I think I’ve found it. I had an old version of prefect still pip installed (I’d upgraded the wrong pip version 😞 )
Let me try again, but yes I think you’re right it must be my local…
c

Chris White

09/02/2020, 8:03 PM
ahh ok
d

David Elliott

09/02/2020, 8:10 PM
Yessss thank you! Gahh I had some real ghosts haunting my python version, but yep I’ve now successfully upgraded my local prefect version and it’s building now, thanks! 🙏
c

Chris White

09/02/2020, 8:11 PM
niiice, glad to help!
d

David Elliott

09/02/2020, 8:11 PM
Now to try out all the new features in v0.13..! 😄
marvin 2