Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Dockerfiles to fix compatibility issues. #1198

Merged

Conversation

bcipriano
Copy link
Collaborator

@bcipriano bcipriano commented Sep 16, 2022

Link the Issue(s) this Pull Request is related to.
#1196

Summarize your change.

  • For Cuebot:
    • Newer JDK/JRE base images.
    • This runs natively on both x86_64 and arm64/v8 platforms.
    • This requires some dependency updates in Cuebot which will be done separately.
    • We'll want to upgrade Gradle further, but we're using a good amount of deprecated features in our build.gradle so that deserves a separate change.
    • We'll also want to upgrade our JDK further, but this image is as far as we can go without breaking Gradle. If this causes issues in the future we could try switching to a pure JDK image and use our own Gradle wrapper.
  • For RQD:
    • Keep using the centos image for now. This provides a good base to build on for an actual deployment.
    • Add the --platform flag to force use of the x86_64 images. There are some issues using protoc on the ARM platform with Python 3.6.
    • We'll want to do some followup work to get upgraded to a newer Python version, both for its own sake and so we can run natively on ARM.
  • For client-side Python libraries:
    • Switch to a Python 3.9 base image, more current and more in line with the current year VFX reference platform.
    • This runs natively on both x86_64 and arm64/v8 platforms.
    • Remove the build/deploy two-stage build. This doesn't really make sense for these images as they're never run directly from the images. In the deploy step we only copy the tarball to our preferred location, so the extra build stage just adds time for no benefit.
  • For Python GUI apps:
    • Keeping using the CentOS image for now, with the older Python version. Add the --platform flag to force x86. We'll be stuck with this until we complete the PySide6 upgrade.
    • We could potentially switch to an x86 python image, but we're installing a lot of extra libraries to get the GUI stuff working so that's not worth the extra work now. We can revisit after the PySide upgrade.
    • Same as the other Python images, ditch the two-stage build, for the same reasons.

All the python images drop Python 2 usage for now. We still run unit tests against Python 2, but our packaging pipeline doesn't use it, and the newer dependencies are making it harder to maintain these images. We'll revisit once we start publishing PyPI packages.

Some of the dependency upgrades from #1185 are in here for testing purposes, those will be cleaned up once we merge that PR.

Copy link
Collaborator

@DiegoTavares DiegoTavares left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. I'm okay with dropping python2 on the images as we're still running the tests.

@bcipriano bcipriano merged commit a6ceb2f into AcademySoftwareFoundation:master Sep 29, 2022
@bcipriano bcipriano deleted the dockerfile-update branch September 29, 2022 17:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants