Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,10 @@ updates:
# together on purpose. Patch and digest updates still flow through.
- dependency-name: "python"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
# Tags like "3.14-slim" slip past update-types, so also cap by version.
# Raise this together with the .python-version files.
- dependency-name: "python"
versions: [">=3.15"]
schedule:
interval: "monthly"
day: "monday"
Expand Down
4 changes: 2 additions & 2 deletions api/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Python version comes from api/.python-version (CI checks they agree).
FROM python:3.14-slim@sha256:a2b82f3c48559aa0a8446d9af49826b6e2b2016f4cd2afabfe6013ec53729170 AS builder
FROM python:3.14-slim@sha256:cd89c30eda26ee911a4611b18680086e0ea42e6f5f8cbe653d07fa7958c9cec8 AS builder

# Install exactly what uv.lock pins: no resolution at build time.
COPY --from=ghcr.io/astral-sh/uv:0.10.11 /uv /bin/uv
Expand All @@ -15,7 +15,7 @@ RUN uv sync --frozen --no-dev --no-install-project
COPY src/ src/
RUN uv sync --frozen --no-dev --no-editable

FROM python:3.14-slim@sha256:a2b82f3c48559aa0a8446d9af49826b6e2b2016f4cd2afabfe6013ec53729170
FROM python:3.14-slim@sha256:cd89c30eda26ee911a4611b18680086e0ea42e6f5f8cbe653d07fa7958c9cec8
# The app runs from /app/.venv; the base image's pip (and the packages it
# vendors) is never used at runtime, so it is removed rather than shipped.
RUN useradd --uid 65532 --user-group --no-create-home app \
Expand Down
4 changes: 2 additions & 2 deletions mcp/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Python version comes from mcp/.python-version (CI checks they agree).
FROM python:3.14-slim@sha256:a2b82f3c48559aa0a8446d9af49826b6e2b2016f4cd2afabfe6013ec53729170 AS builder
FROM python:3.14-slim@sha256:cd89c30eda26ee911a4611b18680086e0ea42e6f5f8cbe653d07fa7958c9cec8 AS builder

# Install exactly what uv.lock pins: no resolution at build time.
COPY --from=ghcr.io/astral-sh/uv:0.10.11 /uv /bin/uv
Expand All @@ -15,7 +15,7 @@ RUN uv sync --frozen --no-dev --no-install-project
COPY src/ src/
RUN uv sync --frozen --no-dev --no-editable

FROM python:3.14-slim@sha256:a2b82f3c48559aa0a8446d9af49826b6e2b2016f4cd2afabfe6013ec53729170
FROM python:3.14-slim@sha256:cd89c30eda26ee911a4611b18680086e0ea42e6f5f8cbe653d07fa7958c9cec8
# The app runs from /app/.venv; the base image's pip (and the packages it
# vendors) is never used at runtime, so it is removed rather than shipped.
RUN useradd --uid 65532 --user-group --no-create-home app \
Expand Down
4 changes: 2 additions & 2 deletions operator/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# The builder runs natively and cross-compiles (GOARCH below), instead of
# running the whole Go toolchain under emulation for non-native platforms.
# Go version matches the toolchain line in go.mod (CI checks they agree).
FROM --platform=$BUILDPLATFORM golang:1.27.3@sha256:f24164268fc1e741bbdc0066dbadcf1c8426c5a8489f0729c02c3905a53032fd AS builder
FROM --platform=$BUILDPLATFORM golang:1.27.3@sha256:2920bb124f1a2e12a1d39f0cab756ae0068441ee1da7655dec7f5e374944095b AS builder
ARG TARGETOS=linux
ARG TARGETARCH

Expand All @@ -16,7 +16,7 @@ COPY internal/ internal/
RUN CGO_ENABLED=0 GOOS=${TARGETOS} GOARCH=${TARGETARCH} \
go build -a -o apps-operator ./cmd

FROM gcr.io/distroless/static:nonroot@sha256:d62067879de890a1def9da0e7766b7d20810a5e5555cef8506b752437d7a3e88
FROM gcr.io/distroless/static:nonroot@sha256:25ac8f0c3b2334a9eb05452266bd4697864a8c8ef0ef71e5e6480d7f92868329
WORKDIR /
COPY --from=builder /workspace/apps-operator .
USER 65532:65532
Expand Down
4 changes: 2 additions & 2 deletions proxy/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# The builder runs natively and cross-compiles (GOARCH below), instead of
# running the whole Go toolchain under emulation for non-native platforms.
# Go version matches the toolchain line in go.mod (CI checks they agree).
FROM --platform=$BUILDPLATFORM golang:1.27.3@sha256:f24164268fc1e741bbdc0066dbadcf1c8426c5a8489f0729c02c3905a53032fd AS builder
FROM --platform=$BUILDPLATFORM golang:1.27.3@sha256:2920bb124f1a2e12a1d39f0cab756ae0068441ee1da7655dec7f5e374944095b AS builder
ARG TARGETOS=linux
ARG TARGETARCH

Expand All @@ -15,7 +15,7 @@ COPY internal/ internal/
RUN CGO_ENABLED=0 GOOS=${TARGETOS} GOARCH=${TARGETARCH} \
go build -trimpath -ldflags="-s -w" -o apps-proxy .

FROM gcr.io/distroless/static:nonroot@sha256:d62067879de890a1def9da0e7766b7d20810a5e5555cef8506b752437d7a3e88
FROM gcr.io/distroless/static:nonroot@sha256:25ac8f0c3b2334a9eb05452266bd4697864a8c8ef0ef71e5e6480d7f92868329
WORKDIR /
COPY --from=builder /workspace/apps-proxy .
USER 65532:65532
Expand Down
4 changes: 2 additions & 2 deletions ui/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Node major comes from ui/.node-version (CI checks they agree).
FROM node:24-alpine@sha256:44fce696f38ba8c987c4db89954051000bbd05ffd8d8659ba15ed4a8602e937f AS builder
FROM node:24-alpine@sha256:8a32c8cf649a49915a66e81e7a609223c708d0adabf288ee3f4077d765542f85 AS builder

WORKDIR /app
COPY package*.json ./
Expand All @@ -8,7 +8,7 @@ RUN npm ci
COPY ./ ./
RUN npm run build

FROM nginx:1.31-alpine@sha256:892bb2152464f0c5d8972593a5f5afaf8054552580b699d95f8ff4af08c2d33d
FROM nginx:1.31-alpine@sha256:785835ea65db4bba6f021acc0f3be91b0fef76a53fe41f8588c6698d2aed0606

# envsubst (gettext) renders ${API_URL} into the config at startup; jq powers
# the entrypoint's optional BRANDING_* overlay (standalone runs only).
Expand Down
Loading