Skip to content

luxonis/oakapp-base

Repository files navigation

Base Docker Image for OAK4 oakapps

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.

Key Features

  • Base image: debian:bookworm-slim for 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:
    • nginx for serving static content and reverse proxying. Self-signed SSL certificates are generated during the build process.
    • oak_webrtc binary for DepthAI WebRTC functionality.
    • runit for service supervision.

oak_webrtc Binary

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 As A Base Image

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.8
  • luxonis/oakapp-base:1.2.8-py311
  • luxonis/oakapp-base:1.2.8-py310
  • luxonis/oakapp-base:1.2.8-cpp

Build Locally

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 .

Luxonis Maintainer Release Steps

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

About

Docker base image for OAK4 oakapps

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors