This repository shows how the Luxonis OAK4 oakapp base images are built. It is public so users can inspect the image contents, reproduce the build locally, or use the published image as a base for their own oakapp image.
Publishing official luxonis/oakapp-base images to Docker Hub or Quay is a Luxonis maintainer task.
- Base image:
debian:bookworm-slimfor the Python images. - Python: built from source with optimizations for OAK4. Images are provided for Python 3.12, 3.11, and 3.10.
- Included services:
nginxfor serving static content and reverse proxying. Self-signed SSL certificates are generated during the build process.oak_webrtcbinary for DepthAI WebRTC functionality.runitfor service supervision.
The oak_webrtc binaries in this repository handle WebRTC connection establishment and data streaming over the internet using Luxonis signaling infrastructure. The source code for this component is maintained in a private Luxonis repository and is not part of this public repository.
Use the published image as the base for your own app image:
FROM luxonis/oakapp-base:1.2.8
COPY . /app
WORKDIR /app
ENTRYPOINT ["/entrypoint.sh", "python3", "-u", "/app/main.py"]Python-version-specific tags are also available:
luxonis/oakapp-base:1.2.8luxonis/oakapp-base:1.2.8-py311luxonis/oakapp-base:1.2.8-py310luxonis/oakapp-base:1.2.8-cpp
To build the images locally under your own tag:
docker buildx build -f ./Dockerfile.py312 --platform=linux/arm64 -t my-oakapp-base:py312 .
docker buildx build -f ./Dockerfile.py311 --platform=linux/arm64 -t my-oakapp-base:py311 .
docker buildx build -f ./Dockerfile.py310 --platform=linux/arm64 -t my-oakapp-base:py310 .
docker buildx build -f ./Dockerfile.c++ --platform=linux/arm64 -t my-oakapp-base:cpp .Only Luxonis maintainers with registry permissions should publish official images.
Build and push to Docker Hub:
docker buildx build -f ./Dockerfile.py312 --platform=linux/arm64 -t luxonis/oakapp-base:1.2.8 -t luxonis/oakapp-base:latest --push .
docker buildx build -f ./Dockerfile.py311 --platform=linux/arm64 -t luxonis/oakapp-base:1.2.8-py311 --push .
docker buildx build -f ./Dockerfile.py310 --platform=linux/arm64 -t luxonis/oakapp-base:1.2.8-py310 --push .
docker buildx build -f ./Dockerfile.c++ --platform=linux/arm64 -t luxonis/oakapp-base:1.2.8-cpp --push .Log in and push to Quay:
docker login quay.io
docker buildx build -f ./Dockerfile.py312 --platform=linux/arm64 -t quay.io/luxonis/oakapp-base:1.2.8 -t quay.io/luxonis/oakapp-base:latest --push .
docker buildx build -f ./Dockerfile.py311 --platform=linux/arm64 -t quay.io/luxonis/oakapp-base:1.2.8-py311 --push .
docker buildx build -f ./Dockerfile.py310 --platform=linux/arm64 -t quay.io/luxonis/oakapp-base:1.2.8-py310 --push .
docker buildx build -f ./Dockerfile.c++ --platform=linux/arm64 -t quay.io/luxonis/oakapp-base:1.2.8-cpp --push .Create and push an annotated git tag for the new base image version:
git tag -a X.Y.Z <commit_hash> -m "<tagging_message>"
git push origin X.Y.Z