forked from molecule-ai/molecule-core
The Dockerfile COPY for molecule-ai-plugin-github-app-auth was lost during a rebase earlier this session. Without it, the platform binary compiled without the TokenProvider interface implementation, causing /admin/github-installation-token to return 'no token provider registered'. This forced hourly rolling restarts to refresh GH_TOKEN (the env var from provision time expires after ~60 min). Each restart also required re-applying 6 manual patches and caused ~2 min of A2A downtime where agents reported peers as 'unresponsive'. With this fix, the gh-wrapper in each container auto-refreshes tokens via the platform endpoint on every gh call. Zero restarts needed. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
31 lines
1.1 KiB
Docker
31 lines
1.1 KiB
Docker
# Platform-only image (no canvas). Used by publish-platform-image workflow
|
|
# for GHCR + Fly registry. Tenant image uses Dockerfile.tenant instead.
|
|
#
|
|
# Build context: repo root.
|
|
|
|
FROM golang:1.25-alpine AS builder
|
|
WORKDIR /app
|
|
# Plugin source for replace directive in go.mod
|
|
COPY molecule-ai-plugin-github-app-auth/ /plugin/
|
|
COPY platform/go.mod platform/go.sum ./
|
|
RUN go mod download
|
|
COPY platform/ .
|
|
RUN CGO_ENABLED=0 GOOS=linux go build -o /platform ./cmd/server
|
|
|
|
# Clone templates + plugins at build time from manifest.json
|
|
FROM alpine:3.20 AS templates
|
|
RUN apk add --no-cache git jq
|
|
COPY manifest.json /manifest.json
|
|
COPY scripts/clone-manifest.sh /scripts/clone-manifest.sh
|
|
RUN chmod +x /scripts/clone-manifest.sh && /scripts/clone-manifest.sh /manifest.json /workspace-configs-templates /org-templates /plugins
|
|
|
|
FROM alpine:3.20
|
|
RUN apk add --no-cache ca-certificates git tzdata
|
|
COPY --from=builder /platform /platform
|
|
COPY platform/migrations /migrations
|
|
COPY --from=templates /workspace-configs-templates /workspace-configs-templates
|
|
COPY --from=templates /org-templates /org-templates
|
|
COPY --from=templates /plugins /plugins
|
|
EXPOSE 8080
|
|
CMD ["/platform"]
|