diff --git a/agents/core-logic/Dockerfile b/agents/core-logic/Dockerfile index 4a95b07..f25ce01 100644 --- a/agents/core-logic/Dockerfile +++ b/agents/core-logic/Dockerfile @@ -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 diff --git a/agents/core-logic/Dockerfile.base b/agents/core-logic/Dockerfile.base new file mode 100644 index 0000000..2b36ae2 --- /dev/null +++ b/agents/core-logic/Dockerfile.base @@ -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 diff --git a/cloudbuild.base.yaml b/cloudbuild.base.yaml new file mode 100644 index 0000000..5c70f36 --- /dev/null +++ b/cloudbuild.base.yaml @@ -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'