-
Notifications
You must be signed in to change notification settings - Fork 3
Description
If I understand what we have now, it was created by Antonin Bas, and has the following "flow":
- This Dockerfile starts with a base ubuntu20.04 Docker image, and adds some packages like grpc, thrift, and a few others developed outside of the p4lang organization, and are major dependencies used by some p4lang projects.
- Dockerfile: https://github.com/p4lang/third-party/blob/main/Dockerfile
- CI script where this Dockerfile is used: https://github.com/p4lang/third-party/blob/main/.github/workflows/build.yml
- output Docker image name: p4lang/third-party
- This Dockerfile starts from p4lang/third-party image, and adds built code from the p4lang/PI repo:
- Dockerfile: https://github.com/p4lang/PI/blob/main/Dockerfile
- CI script: https://github.com/p4lang/PI/blob/main/.github/workflows/build.yml
- output Docker image name: p4lang/pi
- This Dockerfile starts from p4lang/pi, and adds built code from the p4lang/behavioral-model repo:
- Dockerfile: https://github.com/p4lang/behavioral-model/blob/main/Dockerfile
- CI script: https://github.com/p4lang/behavioral-model/blob/main/.github/workflows/build.yml
- output Docker image name: p4ang/behavioral-model
- This Dockerfile starts from p4lang/behavioral-model,
- Dockerfile: https://github.com/p4lang/p4c/blob/main/Dockerfile
- CI script where this Dockerfile is used: I am not sure if this file uses that Docker image or not, or precisely how: https://github.com/p4lang/p4c/blob/main/.github/workflows/ci-container-image.yml
- output DOcker image named: p4lang/p4c
At one time, the p4lang/p4c repo used that p4lang/behavioral-model Docker image to run p4c CI tests, but I think it has been a while since it switched to using Ubuntu deb packages installed via the apt-get command. Unfortunately those deb packages have not been updated since August 2023. The person who was generating them appears to have moved on to other things, and no one else has chosen to update them.
Recently I have propopsed to the P4 Governance Board an idea from Fabian Ruffy: hire someone part time whose main job will be to maintain the CI infrastructure of multiple p4lang projects, including at least all of the ones mentioned above. Sure, if volunteers are willing to do it, great, or if companies are willing to pay people to do this part-time, excellent, but that has been a very short list of people over the last 5 years (mostly Antonin Bas and Fabian Ruffy). The P4 Governance Board sounds open to the idea of paying some money for a qualified person to work on this, but selecting a qualified person has only barely started, and I do not know how long it will take.
All of that said, if there is some specific flow of compute jobs that you are interested in creating automation for, in a way that you believe others will be able to maintain and enhance later, let us know. There are many choices besides Docker, I am sure, but I don't have good enough knowledge of the alernatives to compare and contrast those choices.
Here are some PRs and branches started by Andy Fingerhut in early 2025 that are an attempt to create modifications to the Dockerfiles mentioned above, that start with ubuntu24.04 instead of ubuntu20.04. They do not yet achieve a working build for all of the p4lang repos involved:
- Use Ubuntu 24.04 instead of 20.04 for docker container third-party#36
- https://github.com/jafingerhut/PI/tree/use-jafingerhut-docker-image
- https://github.com/jafingerhut/behavioral-model/tree/dockerfile-updates-for-ubuntu-24.04
- https://github.com/jafingerhut/p4c/tree/dockerfile-updates-for-ubuntu-24.04