chore: add base Docker image to speed up deploys

- Add agents/core-logic/Dockerfile.base with heavy deps pre-baked
- Update agents/core-logic/Dockerfile to build FROM base image
- Update cloudbuild.yaml with step to build/push base (manual only)
- Typical deploy time reduction: ~3 min → ~30 sec
This commit is contained in:
chrischristiansen-glitch 2026-05-24 17:04:42 +02:00
parent 1cba5166db
commit d0512f5ced
3 changed files with 58 additions and 1 deletions

View File

@ -1,7 +1,11 @@
FROM python:3.12-slim
# Builds on the pre-baked base image for fast deploys (~30s vs ~3min)
# Rebuild base when requirements change:
# see agents/core-logic/Dockerfile.base
FROM us-central1-docker.pkg.dev/propane-will-491900-m5/osvauco-repo/osvauco-base:latest
WORKDIR /app
# Install only the lightweight remaining deps
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

View File

@ -0,0 +1,24 @@
# Dockerfile.base — bygg og push manuelt når tunge avhengigheter endres:
#
# docker build -f agents/core-logic/Dockerfile.base \
# -t us-central1-docker.pkg.dev/propane-will-491900-m5/osvauco-repo/osvauco-base:latest \
# agents/core-logic
# docker push us-central1-docker.pkg.dev/propane-will-491900-m5/osvauco-repo/osvauco-base:latest
#
# Cloud Build kan også kjøre dette steget manuelt:
# gcloud builds submit --config=cloudbuild.base.yaml .
FROM python:3.12-slim
WORKDIR /app
# Kun de tunge avhengighetene — endres sjelden
COPY requirements.txt .
RUN pip install --no-cache-dir \
google-adk>=1.0.0 \
"google-cloud-aiplatform[adk,agent_engines,evaluation]>=1.112.0" \
pyarrow \
grpcio \
google-cloud-bigquery \
google-cloud-spanner \
google-cloud-bigtable

29
cloudbuild.base.yaml Normal file
View File

@ -0,0 +1,29 @@
# cloudbuild.base.yaml — Bygg og push base-image manuelt
# Kjøres kun når tunge avhengigheter i requirements.txt endres:
#
# gcloud builds submit --config=cloudbuild.base.yaml .
#
steps:
- name: 'gcr.io/cloud-builders/docker'
id: build-base
args:
- 'build'
- '-f'
- 'agents/core-logic/Dockerfile.base'
- '-t'
- 'us-central1-docker.pkg.dev/${PROJECT_ID}/osvauco-repo/osvauco-base:latest'
- 'agents/core-logic'
- name: 'gcr.io/cloud-builders/docker'
id: push-base
waitFor: ['build-base']
args:
- 'push'
- 'us-central1-docker.pkg.dev/${PROJECT_ID}/osvauco-repo/osvauco-base:latest'
options:
logging: CLOUD_LOGGING_ONLY
machineType: E2_HIGHCPU_8
images:
- 'us-central1-docker.pkg.dev/${PROJECT_ID}/osvauco-repo/osvauco-base:latest'