Pre-launch — Gluecron is in final validation. Public signups and git hosting for non-owner users open after launch review.
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.

DockerfileBlame47 lines · 4 contributors
8ade77bClaude1FROM oven/bun:1.3 AS base
2WORKDIR /app
3
6499f34Claude4# Install git (required for ALL git operations — clone, push, branch/tree
9e3aad5Claude5# 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.
6499f34Claude8RUN apt-get update \
9e3aad5Claude9 && apt-get install -y --no-install-recommends git ca-certificates zip \
6499f34Claude10 && rm -rf /var/lib/apt/lists/* \
11 && git --version
8ade77bClaude12
13# Install dependencies
14COPY package.json bun.lock ./
15RUN bun install --frozen-lockfile --production
16
17# Copy source
18COPY src/ ./src/
50c42feanthropic-code-agent[bot]19COPY drizzle/ ./drizzle/
dcefebeTest User20COPY scripts/ ./scripts/
9e3aad5Claude21COPY extension/ ./extension/
22COPY public/ ./public/
8ade77bClaude23COPY tsconfig.json drizzle.config.ts ./
24COPY legal/ ./legal/
25COPY CLAUDE.md LICENSE ./
26
9e3aad5Claude27# 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.
32RUN bash scripts/build-dxt.sh || echo "WARN: .dxt bundle build skipped"
33
8ade77bClaude34# Create repos directory
35RUN mkdir -p /data/repos
36
37ENV GIT_REPOS_PATH=/data/repos
38ENV NODE_ENV=production
39ENV PORT=3000
40
41EXPOSE 3000
42
2c3ba6ecopilot-swe-agent[bot]43# Run as non-root user for security
44RUN chown -R bun:bun /app /data/repos
45USER bun
46
8ade77bClaude47CMD ["bun", "run", "src/index.ts"]