This is SchoolAI's fork of Unstructured-IO/unstructured-api. We run it internally for document partitioning in the web-app RAG pipeline.
There is no CI/CD in this repo. Image builds are infrequent enough to do manually from a local machine.
Staging and production pull:
us-central1-docker.pkg.dev/schoolai-global/docker/unstructured-api:latest-amd64
That reference lives in web-app at ops/unstructured-api/values-global.yaml. The cluster runs amd64 only (kubernetes.io/arch: amd64).
Prerequisites:
- Docker with buildx
gcloudCLI with access to theschoolai-globalproject
gcloud auth login
gcloud auth configure-docker us-central1-docker.pkg.devFrom the repo root, build for linux/amd64 and push:
IMAGE=us-central1-docker.pkg.dev/schoolai-global/docker/unstructured-api
docker buildx build \
--platform linux/amd64 \
--build-arg PIPELINE_PACKAGE=general \
-t "${IMAGE}:latest-amd64" \
--push \
.On Apple Silicon, --platform linux/amd64 is required so the image runs on GKE. The build may be slow because it cross-compiles.
Optional versioned tag (useful for tracking what was deployed):
VERSION="$(date +'%Y_%m_%d-%H_%M')-$(git rev-parse --short HEAD)"
docker buildx build \
--platform linux/amd64 \
--build-arg PIPELINE_PACKAGE=general \
-t "${IMAGE}:${VERSION}-amd64" \
-t "${IMAGE}:latest-amd64" \
--push \
.Pushing latest-amd64 does not restart running pods by itself. To pick up the new image in staging:
- Trigger a web-app staging deploy (e.g. push to web-app
mainthat touchesops/unstructured-api/**, or run the webapp staging deploy workflow manually), or - Restart the
unstructured-apideployment in thewebappnamespace on the target cluster.
To build and run locally without publishing:
make docker-build
make docker-start-apiThe API is available at http://localhost:8000. See the main README for API usage examples.
web-app's docker-compose.yml can also run the published image directly for local integration testing.