Hello,
I'm trying to figure out how to use a custom Docker image as the base_image in the oakapp.toml when deploying apps to the OAK4 with oakctl.
My approach has been following the guidance on this page: https://docs.luxonis.com/software-v3/oak-apps/configuration/#Configuration%20(oakapp.toml)-Configuration%20Fields-App%20Layers-Base%20Image
My base image is actually just the luxonis/oakapp-base:1.2.6 image with the depthai-core library built so that I don't have to rebuild the library for every updated app deployment.
I am building my custom Docker image (with a base image of luxonis/oakapp-base:1.2.6) using docker buildx … as I am developing on a different architecture. As you can imagine the build process takes quite a long time. Following this I serve the image with
docker run -d -p 5000:5000 --name registry registry:2.7
docker push HOST_IP:5000/oakapp-custom:latest
And then I try building with oakctl app build .. However, I keep getting the following error:
Building oakapp from path: .
✔ Data sent to device ✔ Build has started, reading build logs ... Retrieving base image oakapp-custom:latest ...
✖ Failed to build oakapp package. oakctl command failed:
0: Received an error RPC response: Failed to build application container: Image download failed: OCI registry client received an error: RequestError(reqwest::Error { kind: Decode, source: Error("missing field `mediaType`", line: 152, column: 1) })
Looking at the Docker manifest (with regctl manifest get --format raw HOST_IP:5000/oakapp-custom:latest), it appears to be v2. The top level and each layer has a specified mediaType as well.
Any ideas how to go about this?