CodeIssuesDiscussionsWikiPull RequestsProjectsCommitsActionsReleasesContributorsPulse● GatesSecuritySettingsDeploymentsPipelineInsightsAgents✨ Explain✨ Ask AI✨ Workspace✨ Spec✨ Tests▓ Debt Map✨ NL Search🏛 Archaeology
Blame · Line-by-line history
Dockerfile
Each line is annotated with the commit that last touched it. Click any SHA to jump to that commit and see the surrounding change.
| 8ade77b | 1 | FROM oven/bun:1.3 AS base |
| 2 | WORKDIR /app | |
| 3 | ||
| 6499f34 | 4 | # Install git (required for ALL git operations — clone, push, branch/tree |
| 9e3aad5 | 5 | # listing, diffs) and zip (used to package the Claude Desktop .dxt bundle at |
| 6 | # build time). Verify git landed: a missing binary here must fail the build | |
| 7 | # loudly rather than ship an image that 500s on every repo page. | |
| 6499f34 | 8 | RUN apt-get update \ |
| 9e3aad5 | 9 | && apt-get install -y --no-install-recommends git ca-certificates zip \ |
| 6499f34 | 10 | && rm -rf /var/lib/apt/lists/* \ |
| 11 | && git --version | |
| 8ade77b | 12 | |
| 13 | # Install dependencies | |
| 14 | COPY package.json bun.lock ./ | |
| 15 | RUN bun install --frozen-lockfile --production | |
| 16 | ||
| 17 | # Copy source | |
| 18 | COPY src/ ./src/ | |
| 50c42fe | 19 | COPY drizzle/ ./drizzle/ |
| dcefebe | 20 | COPY scripts/ ./scripts/ |
| 9e3aad5 | 21 | COPY extension/ ./extension/ |
| 22 | COPY public/ ./public/ | |
| 8ade77b | 23 | COPY tsconfig.json drizzle.config.ts ./ |
| 24 | COPY legal/ ./legal/ | |
| 25 | COPY CLAUDE.md LICENSE ./ | |
| 26 | ||
| 9e3aad5 | 27 | # Refresh the Claude Desktop (.dxt) bundle from source into public/ so GET |
| 28 | # /gluecron.dxt serves a real file instead of 404ing (which also kept tripping | |
| 29 | # the synthetic uptime monitor). The committed public/gluecron.dxt is the | |
| 30 | # fallback; this rebuild keeps it in sync with the manifest. Best-effort — a | |
| 31 | # glitch here must not fail the whole image. | |
| 32 | RUN bash scripts/build-dxt.sh || echo "WARN: .dxt bundle build skipped" | |
| 33 | ||
| 8ade77b | 34 | # Create repos directory |
| 35 | RUN mkdir -p /data/repos | |
| 36 | ||
| 37 | ENV GIT_REPOS_PATH=/data/repos | |
| 38 | ENV NODE_ENV=production | |
| 39 | ENV PORT=3000 | |
| 40 | ||
| 41 | EXPOSE 3000 | |
| 42 | ||
| 2c3ba6e | 43 | # Run as non-root user for security |
| 44 | RUN chown -R bun:bun /app /data/repos | |
| 45 | USER bun | |
| 46 | ||
| 8ade77b | 47 | CMD ["bun", "run", "src/index.ts"] |